// ************************************************************************ //
// AVERTISSEMENT                                                                 
// -------                                                                    
// Les types déclarés dans ce fichier ont été générés à partir de données lues 
// depuis la bibliothèque de types. Si cette dernière (via une autre bibliothèque de types 
// s'y référant) est explicitement ou indirectement ré-importée, ou la commande "Rafraîchir"  
// de l'éditeur de bibliothèque de types est activée lors de la modification de la bibliothèque 
// de types, le contenu de ce fichier sera régénéré et toutes les modifications      
// manuellement apportées seront perdues.                                     
// ************************************************************************ //

// C++ TLBWRTR : $Revision: 1.1.1.1 $
// Fichier généré le 17/07/2006 12:51:19 depuis la bibliothèque de types ci-dessous.

// ************************************************************************ //
// Bibl.Types     : C:\WINDOWS\system32\msxml3.dll (1)
// IID\LCID       : {F5078F18-C551-11D3-89B9-0000F81FE221}\0
// Fichier d'aide : 
// DepndLst       : 
//   (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
//   (2) v4.0 StdVCL, (C:\WINDOWS\system32\STDVCL40.DLL)
// ************************************************************************ //
#ifndef   __MSXML2_TLB_h__
#define   __MSXML2_TLB_h__

#pragma option push -b -w-inl

#include <utilcls.h>
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0500)
//
// Le code généré par l'utilitaire TLIBIMP ou par les fonctionnalités Import|TypeLibrary 
// et Import|ActiveX de C++Builder dépendent des versions spécifiques du fichier 
// en-tête UTILCLS.H trouvé dans le répertoire INCLUDE\VCL. Si une version plus 
// ancienne du fichier est détectée, vous avez probablement besoin d'une mise à jour.
//
#error "Ce fichier a besoin d'une version plus récente du fichier en-tête UTILCLS.H" \
       "Vous devez appliquer une mise à jour à votre copie de C++Builder"
#endif
#include <olectl.h>
#include <ocidl.h>
#if defined(USING_ATLVCL) || defined(USING_ATL)
#if !defined(__TLB_NO_EVENT_WRAPPERS)
#include <atl/atlmod.h>
#endif
#endif


// *********************************************************************//
// Référence Forward à certains types VCL (pour éviter d'inclure STDVCL.HPP)    
// *********************************************************************//
namespace Stdvcl {class IStrings; class IStringsDisp;}
using namespace Stdvcl;
typedef TComInterface<IStrings> IStringsPtr;
typedef TComInterface<IStringsDisp> IStringsDispPtr;

namespace Msxml2_tlb
{

// *********************************************************************//
// Chaîne d'aide : Microsoft XML, v3.0
// Version :    3.0
// *********************************************************************//


// *********************************************************************//
// GUIDS déclarés dans la bibliothèque de types. Préfixes utilisés :    
//   Bibliothèques de types : LIBID_xxxx                                      
//   CoClasses              : CLSID_xxxx                                      
//   DISPInterfaces         : DIID_xxxx                                       
//   Non-DISP interfaces    : IID_xxxx                                        
// *********************************************************************//
extern __declspec (package) const GUID LIBID_MSXML2;
extern __declspec (package) const GUID IID_IXMLDOMImplementation;
extern __declspec (package) const GUID IID_IXMLDOMNode;
extern __declspec (package) const GUID GUID_tagDOMNodeType;
extern __declspec (package) const GUID GUID_DOMNodeType;
extern __declspec (package) const GUID IID_IXMLDOMNodeList;
extern __declspec (package) const GUID IID_IXMLDOMNamedNodeMap;
extern __declspec (package) const GUID IID_IXMLDOMDocument;
extern __declspec (package) const GUID IID_IXMLDOMDocumentType;
extern __declspec (package) const GUID IID_IXMLDOMElement;
extern __declspec (package) const GUID IID_IXMLDOMAttribute;
extern __declspec (package) const GUID IID_IXMLDOMDocumentFragment;
extern __declspec (package) const GUID IID_IXMLDOMCharacterData;
extern __declspec (package) const GUID IID_IXMLDOMText;
extern __declspec (package) const GUID IID_IXMLDOMComment;
extern __declspec (package) const GUID IID_IXMLDOMCDATASection;
extern __declspec (package) const GUID IID_IXMLDOMProcessingInstruction;
extern __declspec (package) const GUID IID_IXMLDOMEntityReference;
extern __declspec (package) const GUID IID_IXMLDOMParseError;
extern __declspec (package) const GUID IID_IXMLDOMDocument2;
extern __declspec (package) const GUID IID_IXMLDOMSchemaCollection;
extern __declspec (package) const GUID IID_IXMLDOMNotation;
extern __declspec (package) const GUID IID_IXMLDOMEntity;
extern __declspec (package) const GUID IID_IXTLRuntime;
extern __declspec (package) const GUID IID_IXSLTemplate;
extern __declspec (package) const GUID IID_IXSLProcessor;
extern __declspec (package) const GUID IID_ISAXXMLReader;
extern __declspec (package) const GUID IID_ISAXEntityResolver;
extern __declspec (package) const GUID IID_ISAXContentHandler;
extern __declspec (package) const GUID IID_ISAXLocator;
extern __declspec (package) const GUID IID_ISAXAttributes;
extern __declspec (package) const GUID IID_ISAXDTDHandler;
extern __declspec (package) const GUID IID_ISAXErrorHandler;
extern __declspec (package) const GUID IID_ISAXXMLFilter;
extern __declspec (package) const GUID IID_ISAXLexicalHandler;
extern __declspec (package) const GUID IID_ISAXDeclHandler;
extern __declspec (package) const GUID IID_IVBSAXXMLReader;
extern __declspec (package) const GUID IID_IVBSAXEntityResolver;
extern __declspec (package) const GUID IID_IVBSAXContentHandler;
extern __declspec (package) const GUID IID_IVBSAXLocator;
extern __declspec (package) const GUID IID_IVBSAXAttributes;
extern __declspec (package) const GUID IID_IVBSAXDTDHandler;
extern __declspec (package) const GUID IID_IVBSAXErrorHandler;
extern __declspec (package) const GUID IID_IVBSAXXMLFilter;
extern __declspec (package) const GUID IID_IVBSAXLexicalHandler;
extern __declspec (package) const GUID IID_IVBSAXDeclHandler;
extern __declspec (package) const GUID IID_IMXWriter;
extern __declspec (package) const GUID IID_IMXAttributes;
extern __declspec (package) const GUID IID_IMXReaderControl;
extern __declspec (package) const GUID IID_IMXSchemaDeclHandler;
extern __declspec (package) const GUID IID_ISchemaItem;
extern __declspec (package) const GUID IID_ISchemaParticle;
extern __declspec (package) const GUID IID_ISchemaElement;
extern __declspec (package) const GUID IID_ISchema;
extern __declspec (package) const GUID IID_ISchemaItemCollection;
extern __declspec (package) const GUID IID_ISchemaStringCollection;
extern __declspec (package) const GUID GUID__SOMITEMTYPE;
extern __declspec (package) const GUID GUID_SOMITEMTYPE;
extern __declspec (package) const GUID IID_ISchemaType;
extern __declspec (package) const GUID GUID__SCHEMADERIVATIONMETHOD;
extern __declspec (package) const GUID GUID_SCHEMADERIVATIONMETHOD;
extern __declspec (package) const GUID GUID__SCHEMATYPEVARIETY;
extern __declspec (package) const GUID GUID_SCHEMATYPEVARIETY;
extern __declspec (package) const GUID GUID__SCHEMAWHITESPACE;
extern __declspec (package) const GUID GUID_SCHEMAWHITESPACE;
extern __declspec (package) const GUID IID_ISchemaComplexType;
extern __declspec (package) const GUID IID_ISchemaAny;
extern __declspec (package) const GUID GUID__SCHEMAPROCESSCONTENTS;
extern __declspec (package) const GUID GUID_SCHEMAPROCESSCONTENTS;
extern __declspec (package) const GUID GUID__SCHEMACONTENTTYPE;
extern __declspec (package) const GUID GUID_SCHEMACONTENTTYPE;
extern __declspec (package) const GUID IID_ISchemaModelGroup;
extern __declspec (package) const GUID IID_IXMLDOMSchemaCollection2;
extern __declspec (package) const GUID IID_ISchemaAttribute;
extern __declspec (package) const GUID GUID__SCHEMAUSE;
extern __declspec (package) const GUID GUID_SCHEMAUSE;
extern __declspec (package) const GUID IID_ISchemaAttributeGroup;
extern __declspec (package) const GUID IID_ISchemaIdentityConstraint;
extern __declspec (package) const GUID IID_ISchemaNotation;
extern __declspec (package) const GUID IID_IXMLElementCollection;
extern __declspec (package) const GUID IID_IXMLDocument;
extern __declspec (package) const GUID IID_IXMLElement;
extern __declspec (package) const GUID IID_IXMLDocument2;
extern __declspec (package) const GUID IID_IXMLElement2;
extern __declspec (package) const GUID IID_IXMLAttribute;
extern __declspec (package) const GUID IID_IXMLError;
extern __declspec (package) const GUID GUID__xml_error;
extern __declspec (package) const GUID GUID_tagXMLEMEM_TYPE;
extern __declspec (package) const GUID GUID_XMLELEM_TYPE;
extern __declspec (package) const GUID IID_IXMLDOMSelection;
extern __declspec (package) const GUID DIID_XMLDOMDocumentEvents;
extern __declspec (package) const GUID IID_IDSOControl;
extern __declspec (package) const GUID IID_IXMLHTTPRequest;
extern __declspec (package) const GUID GUID__SERVERXMLHTTP_OPTION;
extern __declspec (package) const GUID GUID_SERVERXMLHTTP_OPTION;
extern __declspec (package) const GUID GUID__SXH_SERVER_CERT_OPTION;
extern __declspec (package) const GUID GUID_SXH_SERVER_CERT_OPTION;
extern __declspec (package) const GUID IID_IServerXMLHTTPRequest;
extern __declspec (package) const GUID GUID__SXH_PROXY_SETTING;
extern __declspec (package) const GUID GUID_SXH_PROXY_SETTING;
extern __declspec (package) const GUID IID_IServerXMLHTTPRequest2;
extern __declspec (package) const GUID IID_IMXNamespacePrefixes;
extern __declspec (package) const GUID IID_IVBMXNamespaceManager;
extern __declspec (package) const GUID IID_IMXNamespaceManager;
extern __declspec (package) const GUID CLSID_DOMDocument;
extern __declspec (package) const GUID CLSID_DOMDocument26;
extern __declspec (package) const GUID CLSID_DOMDocument30;
extern __declspec (package) const GUID CLSID_DOMDocument40;
extern __declspec (package) const GUID CLSID_FreeThreadedDOMDocument;
extern __declspec (package) const GUID CLSID_FreeThreadedDOMDocument26;
extern __declspec (package) const GUID CLSID_FreeThreadedDOMDocument30;
extern __declspec (package) const GUID CLSID_FreeThreadedDOMDocument40;
extern __declspec (package) const GUID CLSID_XMLSchemaCache;
extern __declspec (package) const GUID CLSID_XMLSchemaCache26;
extern __declspec (package) const GUID CLSID_XMLSchemaCache30;
extern __declspec (package) const GUID CLSID_XMLSchemaCache40;
extern __declspec (package) const GUID CLSID_XSLTemplate;
extern __declspec (package) const GUID CLSID_XSLTemplate26;
extern __declspec (package) const GUID CLSID_XSLTemplate30;
extern __declspec (package) const GUID CLSID_XSLTemplate40;
extern __declspec (package) const GUID CLSID_DSOControl;
extern __declspec (package) const GUID CLSID_DSOControl26;
extern __declspec (package) const GUID CLSID_DSOControl30;
extern __declspec (package) const GUID CLSID_DSOControl40;
extern __declspec (package) const GUID CLSID_XMLHTTP;
extern __declspec (package) const GUID CLSID_XMLHTTP26;
extern __declspec (package) const GUID CLSID_XMLHTTP30;
extern __declspec (package) const GUID CLSID_XMLHTTP40;
extern __declspec (package) const GUID CLSID_ServerXMLHTTP;
extern __declspec (package) const GUID CLSID_ServerXMLHTTP30;
extern __declspec (package) const GUID CLSID_ServerXMLHTTP40;
extern __declspec (package) const GUID CLSID_SAXXMLReader;
extern __declspec (package) const GUID CLSID_SAXXMLReader30;
extern __declspec (package) const GUID CLSID_SAXXMLReader40;
extern __declspec (package) const GUID CLSID_MXXMLWriter;
extern __declspec (package) const GUID CLSID_MXXMLWriter30;
extern __declspec (package) const GUID CLSID_MXXMLWriter40;
extern __declspec (package) const GUID CLSID_MXHTMLWriter;
extern __declspec (package) const GUID CLSID_MXHTMLWriter30;
extern __declspec (package) const GUID CLSID_MXHTMLWriter40;
extern __declspec (package) const GUID CLSID_SAXAttributes;
extern __declspec (package) const GUID CLSID_SAXAttributes30;
extern __declspec (package) const GUID CLSID_SAXAttributes40;
extern __declspec (package) const GUID CLSID_MXNamespaceManager;
extern __declspec (package) const GUID CLSID_MXNamespaceManager40;
extern __declspec (package) const GUID CLSID_XMLDocument;

// *********************************************************************//
// Déclaration Forward des types définis dans la bibliothèque de types    
// *********************************************************************//
enum      tagDOMNodeType;
enum      _SOMITEMTYPE;
enum      _SCHEMADERIVATIONMETHOD;
enum      _SCHEMATYPEVARIETY;
enum      _SCHEMAWHITESPACE;
enum      _SCHEMAPROCESSCONTENTS;
enum      _SCHEMACONTENTTYPE;
enum      _SCHEMAUSE;
struct    _xml_error;
enum      tagXMLEMEM_TYPE;
enum      _SERVERXMLHTTP_OPTION;
enum      _SXH_SERVER_CERT_OPTION;
enum      _SXH_PROXY_SETTING;
interface DECLSPEC_UUID("{2933BF8F-7B36-11D2-B20E-00C04F983E60}") IXMLDOMImplementation;
typedef TComInterface<IXMLDOMImplementation, &IID_IXMLDOMImplementation> IXMLDOMImplementationPtr;
interface DECLSPEC_UUID("{2933BF80-7B36-11D2-B20E-00C04F983E60}") IXMLDOMNode;
typedef TComInterface<IXMLDOMNode, &IID_IXMLDOMNode> IXMLDOMNodePtr;
interface DECLSPEC_UUID("{2933BF82-7B36-11D2-B20E-00C04F983E60}") IXMLDOMNodeList;
typedef TComInterface<IXMLDOMNodeList, &IID_IXMLDOMNodeList> IXMLDOMNodeListPtr;
interface DECLSPEC_UUID("{2933BF83-7B36-11D2-B20E-00C04F983E60}") IXMLDOMNamedNodeMap;
typedef TComInterface<IXMLDOMNamedNodeMap, &IID_IXMLDOMNamedNodeMap> IXMLDOMNamedNodeMapPtr;
interface DECLSPEC_UUID("{2933BF81-7B36-11D2-B20E-00C04F983E60}") IXMLDOMDocument;
typedef TComInterface<IXMLDOMDocument, &IID_IXMLDOMDocument> IXMLDOMDocumentPtr;
interface DECLSPEC_UUID("{2933BF8B-7B36-11D2-B20E-00C04F983E60}") IXMLDOMDocumentType;
typedef TComInterface<IXMLDOMDocumentType, &IID_IXMLDOMDocumentType> IXMLDOMDocumentTypePtr;
interface DECLSPEC_UUID("{2933BF86-7B36-11D2-B20E-00C04F983E60}") IXMLDOMElement;
typedef TComInterface<IXMLDOMElement, &IID_IXMLDOMElement> IXMLDOMElementPtr;
interface DECLSPEC_UUID("{2933BF85-7B36-11D2-B20E-00C04F983E60}") IXMLDOMAttribute;
typedef TComInterface<IXMLDOMAttribute, &IID_IXMLDOMAttribute> IXMLDOMAttributePtr;
interface DECLSPEC_UUID("{3EFAA413-272F-11D2-836F-0000F87A7782}") IXMLDOMDocumentFragment;
typedef TComInterface<IXMLDOMDocumentFragment, &IID_IXMLDOMDocumentFragment> IXMLDOMDocumentFragmentPtr;
interface DECLSPEC_UUID("{2933BF84-7B36-11D2-B20E-00C04F983E60}") IXMLDOMCharacterData;
typedef TComInterface<IXMLDOMCharacterData, &IID_IXMLDOMCharacterData> IXMLDOMCharacterDataPtr;
interface DECLSPEC_UUID("{2933BF87-7B36-11D2-B20E-00C04F983E60}") IXMLDOMText;
typedef TComInterface<IXMLDOMText, &IID_IXMLDOMText> IXMLDOMTextPtr;
interface DECLSPEC_UUID("{2933BF88-7B36-11D2-B20E-00C04F983E60}") IXMLDOMComment;
typedef TComInterface<IXMLDOMComment, &IID_IXMLDOMComment> IXMLDOMCommentPtr;
interface DECLSPEC_UUID("{2933BF8A-7B36-11D2-B20E-00C04F983E60}") IXMLDOMCDATASection;
typedef TComInterface<IXMLDOMCDATASection, &IID_IXMLDOMCDATASection> IXMLDOMCDATASectionPtr;
interface DECLSPEC_UUID("{2933BF89-7B36-11D2-B20E-00C04F983E60}") IXMLDOMProcessingInstruction;
typedef TComInterface<IXMLDOMProcessingInstruction, &IID_IXMLDOMProcessingInstruction> IXMLDOMProcessingInstructionPtr;
interface DECLSPEC_UUID("{2933BF8E-7B36-11D2-B20E-00C04F983E60}") IXMLDOMEntityReference;
typedef TComInterface<IXMLDOMEntityReference, &IID_IXMLDOMEntityReference> IXMLDOMEntityReferencePtr;
interface DECLSPEC_UUID("{3EFAA426-272F-11D2-836F-0000F87A7782}") IXMLDOMParseError;
typedef TComInterface<IXMLDOMParseError, &IID_IXMLDOMParseError> IXMLDOMParseErrorPtr;
interface DECLSPEC_UUID("{2933BF95-7B36-11D2-B20E-00C04F983E60}") IXMLDOMDocument2;
typedef TComInterface<IXMLDOMDocument2, &IID_IXMLDOMDocument2> IXMLDOMDocument2Ptr;
interface DECLSPEC_UUID("{373984C8-B845-449B-91E7-45AC83036ADE}") IXMLDOMSchemaCollection;
typedef TComInterface<IXMLDOMSchemaCollection, &IID_IXMLDOMSchemaCollection> IXMLDOMSchemaCollectionPtr;
interface DECLSPEC_UUID("{2933BF8C-7B36-11D2-B20E-00C04F983E60}") IXMLDOMNotation;
typedef TComInterface<IXMLDOMNotation, &IID_IXMLDOMNotation> IXMLDOMNotationPtr;
interface DECLSPEC_UUID("{2933BF8D-7B36-11D2-B20E-00C04F983E60}") IXMLDOMEntity;
typedef TComInterface<IXMLDOMEntity, &IID_IXMLDOMEntity> IXMLDOMEntityPtr;
interface DECLSPEC_UUID("{3EFAA425-272F-11D2-836F-0000F87A7782}") IXTLRuntime;
typedef TComInterface<IXTLRuntime, &IID_IXTLRuntime> IXTLRuntimePtr;
interface DECLSPEC_UUID("{2933BF93-7B36-11D2-B20E-00C04F983E60}") IXSLTemplate;
typedef TComInterface<IXSLTemplate, &IID_IXSLTemplate> IXSLTemplatePtr;
interface DECLSPEC_UUID("{2933BF92-7B36-11D2-B20E-00C04F983E60}") IXSLProcessor;
typedef TComInterface<IXSLProcessor, &IID_IXSLProcessor> IXSLProcessorPtr;
interface DECLSPEC_UUID("{A4F96ED0-F829-476E-81C0-CDC7BD2A0802}") ISAXXMLReader;
typedef TComInterface<ISAXXMLReader, &IID_ISAXXMLReader> ISAXXMLReaderPtr;
interface DECLSPEC_UUID("{99BCA7BD-E8C4-4D5F-A0CF-6D907901FF07}") ISAXEntityResolver;
typedef TComInterface<ISAXEntityResolver, &IID_ISAXEntityResolver> ISAXEntityResolverPtr;
interface DECLSPEC_UUID("{1545CDFA-9E4E-4497-A8A4-2BF7D0112C44}") ISAXContentHandler;
typedef TComInterface<ISAXContentHandler, &IID_ISAXContentHandler> ISAXContentHandlerPtr;
interface DECLSPEC_UUID("{9B7E472A-0DE4-4640-BFF3-84D38A051C31}") ISAXLocator;
typedef TComInterface<ISAXLocator, &IID_ISAXLocator> ISAXLocatorPtr;
interface DECLSPEC_UUID("{F078ABE1-45D2-4832-91EA-4466CE2F25C9}") ISAXAttributes;
typedef TComInterface<ISAXAttributes, &IID_ISAXAttributes> ISAXAttributesPtr;
interface DECLSPEC_UUID("{E15C1BAF-AFB3-4D60-8C36-19A8C45DEFED}") ISAXDTDHandler;
typedef TComInterface<ISAXDTDHandler, &IID_ISAXDTDHandler> ISAXDTDHandlerPtr;
interface DECLSPEC_UUID("{A60511C4-CCF5-479E-98A3-DC8DC545B7D0}") ISAXErrorHandler;
typedef TComInterface<ISAXErrorHandler, &IID_ISAXErrorHandler> ISAXErrorHandlerPtr;
interface DECLSPEC_UUID("{70409222-CA09-4475-ACB8-40312FE8D145}") ISAXXMLFilter;
typedef TComInterface<ISAXXMLFilter, &IID_ISAXXMLFilter> ISAXXMLFilterPtr;
interface DECLSPEC_UUID("{7F85D5F5-47A8-4497-BDA5-84BA04819EA6}") ISAXLexicalHandler;
typedef TComInterface<ISAXLexicalHandler, &IID_ISAXLexicalHandler> ISAXLexicalHandlerPtr;
interface DECLSPEC_UUID("{862629AC-771A-47B2-8337-4E6843C1BE90}") ISAXDeclHandler;
typedef TComInterface<ISAXDeclHandler, &IID_ISAXDeclHandler> ISAXDeclHandlerPtr;
interface DECLSPEC_UUID("{8C033CAA-6CD6-4F73-B728-4531AF74945F}") IVBSAXXMLReader;
typedef TComInterface<IVBSAXXMLReader, &IID_IVBSAXXMLReader> IVBSAXXMLReaderPtr;
interface DECLSPEC_UUID("{0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}") IVBSAXEntityResolver;
typedef TComInterface<IVBSAXEntityResolver, &IID_IVBSAXEntityResolver> IVBSAXEntityResolverPtr;
interface DECLSPEC_UUID("{2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}") IVBSAXContentHandler;
typedef TComInterface<IVBSAXContentHandler, &IID_IVBSAXContentHandler> IVBSAXContentHandlerPtr;
interface DECLSPEC_UUID("{796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}") IVBSAXLocator;
typedef TComInterface<IVBSAXLocator, &IID_IVBSAXLocator> IVBSAXLocatorPtr;
interface DECLSPEC_UUID("{10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}") IVBSAXAttributes;
typedef TComInterface<IVBSAXAttributes, &IID_IVBSAXAttributes> IVBSAXAttributesPtr;
interface DECLSPEC_UUID("{24FB3297-302D-4620-BA39-3A732D850558}") IVBSAXDTDHandler;
typedef TComInterface<IVBSAXDTDHandler, &IID_IVBSAXDTDHandler> IVBSAXDTDHandlerPtr;
interface DECLSPEC_UUID("{D963D3FE-173C-4862-9095-B92F66995F52}") IVBSAXErrorHandler;
typedef TComInterface<IVBSAXErrorHandler, &IID_IVBSAXErrorHandler> IVBSAXErrorHandlerPtr;
interface DECLSPEC_UUID("{1299EB1B-5B88-433E-82DE-82CA75AD4E04}") IVBSAXXMLFilter;
typedef TComInterface<IVBSAXXMLFilter, &IID_IVBSAXXMLFilter> IVBSAXXMLFilterPtr;
interface DECLSPEC_UUID("{032AAC35-8C0E-4D9D-979F-E3B702935576}") IVBSAXLexicalHandler;
typedef TComInterface<IVBSAXLexicalHandler, &IID_IVBSAXLexicalHandler> IVBSAXLexicalHandlerPtr;
interface DECLSPEC_UUID("{E8917260-7579-4BE1-B5DD-7AFBFA6F077B}") IVBSAXDeclHandler;
typedef TComInterface<IVBSAXDeclHandler, &IID_IVBSAXDeclHandler> IVBSAXDeclHandlerPtr;
interface DECLSPEC_UUID("{4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}") IMXWriter;
typedef TComInterface<IMXWriter, &IID_IMXWriter> IMXWriterPtr;
interface DECLSPEC_UUID("{F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}") IMXAttributes;
typedef TComInterface<IMXAttributes, &IID_IMXAttributes> IMXAttributesPtr;
interface DECLSPEC_UUID("{808F4E35-8D5A-4FBE-8466-33A41279ED30}") IMXReaderControl;
typedef TComInterface<IMXReaderControl, &IID_IMXReaderControl> IMXReaderControlPtr;
interface DECLSPEC_UUID("{FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}") IMXSchemaDeclHandler;
typedef TComInterface<IMXSchemaDeclHandler, &IID_IMXSchemaDeclHandler> IMXSchemaDeclHandlerPtr;
interface DECLSPEC_UUID("{50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaItem;
typedef TComInterface<ISchemaItem, &IID_ISchemaItem> ISchemaItemPtr;
interface DECLSPEC_UUID("{50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaParticle;
typedef TComInterface<ISchemaParticle, &IID_ISchemaParticle> ISchemaParticlePtr;
interface DECLSPEC_UUID("{50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaElement;
typedef TComInterface<ISchemaElement, &IID_ISchemaElement> ISchemaElementPtr;
interface DECLSPEC_UUID("{50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}") ISchema;
typedef TComInterface<ISchema, &IID_ISchema> ISchemaPtr;
interface DECLSPEC_UUID("{50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaItemCollection;
typedef TComInterface<ISchemaItemCollection, &IID_ISchemaItemCollection> ISchemaItemCollectionPtr;
interface DECLSPEC_UUID("{50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaStringCollection;
typedef TComInterface<ISchemaStringCollection, &IID_ISchemaStringCollection> ISchemaStringCollectionPtr;
interface DECLSPEC_UUID("{50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaType;
typedef TComInterface<ISchemaType, &IID_ISchemaType> ISchemaTypePtr;
interface DECLSPEC_UUID("{50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaComplexType;
typedef TComInterface<ISchemaComplexType, &IID_ISchemaComplexType> ISchemaComplexTypePtr;
interface DECLSPEC_UUID("{50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaAny;
typedef TComInterface<ISchemaAny, &IID_ISchemaAny> ISchemaAnyPtr;
interface DECLSPEC_UUID("{50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaModelGroup;
typedef TComInterface<ISchemaModelGroup, &IID_ISchemaModelGroup> ISchemaModelGroupPtr;
interface DECLSPEC_UUID("{50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}") IXMLDOMSchemaCollection2;
typedef TComInterface<IXMLDOMSchemaCollection2, &IID_IXMLDOMSchemaCollection2> IXMLDOMSchemaCollection2Ptr;
interface DECLSPEC_UUID("{50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaAttribute;
typedef TComInterface<ISchemaAttribute, &IID_ISchemaAttribute> ISchemaAttributePtr;
interface DECLSPEC_UUID("{50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaAttributeGroup;
typedef TComInterface<ISchemaAttributeGroup, &IID_ISchemaAttributeGroup> ISchemaAttributeGroupPtr;
interface DECLSPEC_UUID("{50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaIdentityConstraint;
typedef TComInterface<ISchemaIdentityConstraint, &IID_ISchemaIdentityConstraint> ISchemaIdentityConstraintPtr;
interface DECLSPEC_UUID("{50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}") ISchemaNotation;
typedef TComInterface<ISchemaNotation, &IID_ISchemaNotation> ISchemaNotationPtr;
interface DECLSPEC_UUID("{65725580-9B5D-11D0-9BFE-00C04FC99C8E}") IXMLElementCollection;
typedef TComInterface<IXMLElementCollection, &IID_IXMLElementCollection> IXMLElementCollectionPtr;
interface DECLSPEC_UUID("{F52E2B61-18A1-11D1-B105-00805F49916B}") IXMLDocument;
typedef TComInterface<IXMLDocument, &IID_IXMLDocument> IXMLDocumentPtr;
interface DECLSPEC_UUID("{3F7F31AC-E15F-11D0-9C25-00C04FC99C8E}") IXMLElement;
typedef TComInterface<IXMLElement, &IID_IXMLElement> IXMLElementPtr;
interface DECLSPEC_UUID("{2B8DE2FE-8D2D-11D1-B2FC-00C04FD915A9}") IXMLDocument2;
typedef TComInterface<IXMLDocument2, &IID_IXMLDocument2> IXMLDocument2Ptr;
interface DECLSPEC_UUID("{2B8DE2FF-8D2D-11D1-B2FC-00C04FD915A9}") IXMLElement2;
typedef TComInterface<IXMLElement2, &IID_IXMLElement2> IXMLElement2Ptr;
interface DECLSPEC_UUID("{D4D4A0FC-3B73-11D1-B2B4-00C04FB92596}") IXMLAttribute;
typedef TComInterface<IXMLAttribute, &IID_IXMLAttribute> IXMLAttributePtr;
interface DECLSPEC_UUID("{948C5AD3-C58D-11D0-9C0B-00C04FC99C8E}") IXMLError;
typedef TComInterface<IXMLError, &IID_IXMLError> IXMLErrorPtr;
interface DECLSPEC_UUID("{AA634FC7-5888-44A7-A257-3A47150D3A0E}") IXMLDOMSelection;
typedef TComInterface<IXMLDOMSelection, &IID_IXMLDOMSelection> IXMLDOMSelectionPtr;
interface DECLSPEC_UUID("{3EFAA427-272F-11D2-836F-0000F87A7782}") XMLDOMDocumentEvents;
typedef TComInterface<XMLDOMDocumentEvents, &DIID_XMLDOMDocumentEvents> XMLDOMDocumentEventsPtr;
interface DECLSPEC_UUID("{310AFA62-0575-11D2-9CA9-0060B0EC3D39}") IDSOControl;
typedef TComInterface<IDSOControl, &IID_IDSOControl> IDSOControlPtr;
interface DECLSPEC_UUID("{ED8C108D-4349-11D2-91A4-00C04F7969E8}") IXMLHTTPRequest;
typedef TComInterface<IXMLHTTPRequest, &IID_IXMLHTTPRequest> IXMLHTTPRequestPtr;
interface DECLSPEC_UUID("{2E9196BF-13BA-4DD4-91CA-6C571F281495}") IServerXMLHTTPRequest;
typedef TComInterface<IServerXMLHTTPRequest, &IID_IServerXMLHTTPRequest> IServerXMLHTTPRequestPtr;
interface DECLSPEC_UUID("{2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}") IServerXMLHTTPRequest2;
typedef TComInterface<IServerXMLHTTPRequest2, &IID_IServerXMLHTTPRequest2> IServerXMLHTTPRequest2Ptr;
interface DECLSPEC_UUID("{C90352F4-643C-4FBC-BB23-E996EB2D51FD}") IMXNamespacePrefixes;
typedef TComInterface<IMXNamespacePrefixes, &IID_IMXNamespacePrefixes> IMXNamespacePrefixesPtr;
interface DECLSPEC_UUID("{C90352F5-643C-4FBC-BB23-E996EB2D51FD}") IVBMXNamespaceManager;
typedef TComInterface<IVBMXNamespaceManager, &IID_IVBMXNamespaceManager> IVBMXNamespaceManagerPtr;
interface DECLSPEC_UUID("{C90352F6-643C-4FBC-BB23-E996EB2D51FD}") IMXNamespaceManager;
typedef TComInterface<IMXNamespaceManager, &IID_IMXNamespaceManager> IMXNamespaceManagerPtr;

// *********************************************************************//
// Déclaration des CoClasses définies dans la bibliothèque de types    
// (REMARQUE : On affecte chaque CoClass à son Interface par défaut)              
//                                                                        
// Les macros LIBID_OF_ affectent un LIBID_OF_CoClassName au GUID de 
// cette Bibliothèque de types. Cela simplifie la mise à jour des macros lorsque le nom 
// de CoClass change.                                                           
// *********************************************************************//
typedef IXMLDOMDocument2 DOMDocument;
typedef IXMLDOMDocument2Ptr DOMDocumentPtr;
typedef IXMLDOMDocument2 DOMDocument26;
typedef IXMLDOMDocument2Ptr DOMDocument26Ptr;
typedef IXMLDOMDocument2 DOMDocument30;
typedef IXMLDOMDocument2Ptr DOMDocument30Ptr;
typedef IXMLDOMDocument2 DOMDocument40;
typedef IXMLDOMDocument2Ptr DOMDocument40Ptr;
typedef IXMLDOMDocument2 FreeThreadedDOMDocument;
typedef IXMLDOMDocument2Ptr FreeThreadedDOMDocumentPtr;
typedef IXMLDOMDocument2 FreeThreadedDOMDocument26;
typedef IXMLDOMDocument2Ptr FreeThreadedDOMDocument26Ptr;
typedef IXMLDOMDocument2 FreeThreadedDOMDocument30;
typedef IXMLDOMDocument2Ptr FreeThreadedDOMDocument30Ptr;
typedef IXMLDOMDocument2 FreeThreadedDOMDocument40;
typedef IXMLDOMDocument2Ptr FreeThreadedDOMDocument40Ptr;
typedef IXMLDOMSchemaCollection XMLSchemaCache;
typedef IXMLDOMSchemaCollectionPtr XMLSchemaCachePtr;
typedef IXMLDOMSchemaCollection XMLSchemaCache26;
typedef IXMLDOMSchemaCollectionPtr XMLSchemaCache26Ptr;
typedef IXMLDOMSchemaCollection XMLSchemaCache30;
typedef IXMLDOMSchemaCollectionPtr XMLSchemaCache30Ptr;
typedef IXMLDOMSchemaCollection2 XMLSchemaCache40;
typedef IXMLDOMSchemaCollection2Ptr XMLSchemaCache40Ptr;
typedef IXSLTemplate XSLTemplate;
typedef IXSLTemplatePtr XSLTemplatePtr;
typedef IXSLTemplate XSLTemplate26;
typedef IXSLTemplatePtr XSLTemplate26Ptr;
typedef IXSLTemplate XSLTemplate30;
typedef IXSLTemplatePtr XSLTemplate30Ptr;
typedef IXSLTemplate XSLTemplate40;
typedef IXSLTemplatePtr XSLTemplate40Ptr;
typedef IDSOControl DSOControl;
typedef IDSOControlPtr DSOControlPtr;
typedef IDSOControl DSOControl26;
typedef IDSOControlPtr DSOControl26Ptr;
typedef IDSOControl DSOControl30;
typedef IDSOControlPtr DSOControl30Ptr;
typedef IDSOControl DSOControl40;
typedef IDSOControlPtr DSOControl40Ptr;
typedef IXMLHTTPRequest XMLHTTP;
typedef IXMLHTTPRequestPtr XMLHTTPPtr;
typedef IXMLHTTPRequest XMLHTTP26;
typedef IXMLHTTPRequestPtr XMLHTTP26Ptr;
typedef IXMLHTTPRequest XMLHTTP30;
typedef IXMLHTTPRequestPtr XMLHTTP30Ptr;
typedef IXMLHTTPRequest XMLHTTP40;
typedef IXMLHTTPRequestPtr XMLHTTP40Ptr;
typedef IServerXMLHTTPRequest ServerXMLHTTP;
typedef IServerXMLHTTPRequestPtr ServerXMLHTTPPtr;
typedef IServerXMLHTTPRequest ServerXMLHTTP30;
typedef IServerXMLHTTPRequestPtr ServerXMLHTTP30Ptr;
typedef IServerXMLHTTPRequest2 ServerXMLHTTP40;
typedef IServerXMLHTTPRequest2Ptr ServerXMLHTTP40Ptr;
typedef IVBSAXXMLReader SAXXMLReader;
typedef IVBSAXXMLReaderPtr SAXXMLReaderPtr;
typedef IVBSAXXMLReader SAXXMLReader30;
typedef IVBSAXXMLReaderPtr SAXXMLReader30Ptr;
typedef IVBSAXXMLReader SAXXMLReader40;
typedef IVBSAXXMLReaderPtr SAXXMLReader40Ptr;
typedef IMXWriter MXXMLWriter;
typedef IMXWriterPtr MXXMLWriterPtr;
typedef IMXWriter MXXMLWriter30;
typedef IMXWriterPtr MXXMLWriter30Ptr;
typedef IMXWriter MXXMLWriter40;
typedef IMXWriterPtr MXXMLWriter40Ptr;
typedef IMXWriter MXHTMLWriter;
typedef IMXWriterPtr MXHTMLWriterPtr;
typedef IMXWriter MXHTMLWriter30;
typedef IMXWriterPtr MXHTMLWriter30Ptr;
typedef IMXWriter MXHTMLWriter40;
typedef IMXWriterPtr MXHTMLWriter40Ptr;
typedef IMXAttributes SAXAttributes;
typedef IMXAttributesPtr SAXAttributesPtr;
typedef IMXAttributes SAXAttributes30;
typedef IMXAttributesPtr SAXAttributes30Ptr;
typedef IMXAttributes SAXAttributes40;
typedef IMXAttributesPtr SAXAttributes40Ptr;
typedef IVBMXNamespaceManager MXNamespaceManager;
typedef IVBMXNamespaceManagerPtr MXNamespaceManagerPtr;
typedef IVBMXNamespaceManager MXNamespaceManager40;
typedef IVBMXNamespaceManagerPtr MXNamespaceManager40Ptr;
typedef IXMLDocument2 XMLDocument;
typedef IXMLDocument2Ptr XMLDocumentPtr;

#define LIBID_OF_DOMDocument (&LIBID_MSXML2)
#define LIBID_OF_DOMDocument26 (&LIBID_MSXML2)
#define LIBID_OF_DOMDocument30 (&LIBID_MSXML2)
#define LIBID_OF_DOMDocument40 (&LIBID_MSXML2)
#define LIBID_OF_FreeThreadedDOMDocument (&LIBID_MSXML2)
#define LIBID_OF_FreeThreadedDOMDocument26 (&LIBID_MSXML2)
#define LIBID_OF_FreeThreadedDOMDocument30 (&LIBID_MSXML2)
#define LIBID_OF_FreeThreadedDOMDocument40 (&LIBID_MSXML2)
#define LIBID_OF_XMLSchemaCache (&LIBID_MSXML2)
#define LIBID_OF_XMLSchemaCache26 (&LIBID_MSXML2)
#define LIBID_OF_XMLSchemaCache30 (&LIBID_MSXML2)
#define LIBID_OF_XMLSchemaCache40 (&LIBID_MSXML2)
#define LIBID_OF_XSLTemplate (&LIBID_MSXML2)
#define LIBID_OF_XSLTemplate26 (&LIBID_MSXML2)
#define LIBID_OF_XSLTemplate30 (&LIBID_MSXML2)
#define LIBID_OF_XSLTemplate40 (&LIBID_MSXML2)
#define LIBID_OF_DSOControl (&LIBID_MSXML2)
#define LIBID_OF_DSOControl26 (&LIBID_MSXML2)
#define LIBID_OF_DSOControl30 (&LIBID_MSXML2)
#define LIBID_OF_DSOControl40 (&LIBID_MSXML2)
#define LIBID_OF_XMLHTTP (&LIBID_MSXML2)
#define LIBID_OF_XMLHTTP26 (&LIBID_MSXML2)
#define LIBID_OF_XMLHTTP30 (&LIBID_MSXML2)
#define LIBID_OF_XMLHTTP40 (&LIBID_MSXML2)
#define LIBID_OF_ServerXMLHTTP (&LIBID_MSXML2)
#define LIBID_OF_ServerXMLHTTP30 (&LIBID_MSXML2)
#define LIBID_OF_ServerXMLHTTP40 (&LIBID_MSXML2)
#define LIBID_OF_SAXXMLReader (&LIBID_MSXML2)
#define LIBID_OF_SAXXMLReader30 (&LIBID_MSXML2)
#define LIBID_OF_SAXXMLReader40 (&LIBID_MSXML2)
#define LIBID_OF_MXXMLWriter (&LIBID_MSXML2)
#define LIBID_OF_MXXMLWriter30 (&LIBID_MSXML2)
#define LIBID_OF_MXXMLWriter40 (&LIBID_MSXML2)
#define LIBID_OF_MXHTMLWriter (&LIBID_MSXML2)
#define LIBID_OF_MXHTMLWriter30 (&LIBID_MSXML2)
#define LIBID_OF_MXHTMLWriter40 (&LIBID_MSXML2)
#define LIBID_OF_SAXAttributes (&LIBID_MSXML2)
#define LIBID_OF_SAXAttributes30 (&LIBID_MSXML2)
#define LIBID_OF_SAXAttributes40 (&LIBID_MSXML2)
#define LIBID_OF_MXNamespaceManager (&LIBID_MSXML2)
#define LIBID_OF_MXNamespaceManager40 (&LIBID_MSXML2)
#define LIBID_OF_XMLDocument (&LIBID_MSXML2)

// *********************************************************************//
// Déclaration d'alias définis dans la bibliothèque de types       
// *********************************************************************//
typedef Msxml2_tlb::tagDOMNodeType DOMNodeType;
typedef Msxml2_tlb::_SOMITEMTYPE SOMITEMTYPE;
typedef Msxml2_tlb::_SCHEMADERIVATIONMETHOD SCHEMADERIVATIONMETHOD;
typedef Msxml2_tlb::_SCHEMATYPEVARIETY SCHEMATYPEVARIETY;
typedef Msxml2_tlb::_SCHEMAWHITESPACE SCHEMAWHITESPACE;
typedef Msxml2_tlb::_SCHEMAPROCESSCONTENTS SCHEMAPROCESSCONTENTS;
typedef Msxml2_tlb::_SCHEMACONTENTTYPE SCHEMACONTENTTYPE;
typedef Msxml2_tlb::_SCHEMAUSE SCHEMAUSE;
typedef Msxml2_tlb::tagXMLEMEM_TYPE XMLELEM_TYPE;
typedef Msxml2_tlb::_SERVERXMLHTTP_OPTION SERVERXMLHTTP_OPTION;
typedef Msxml2_tlb::_SXH_SERVER_CERT_OPTION SXH_SERVER_CERT_OPTION;
typedef Msxml2_tlb::_SXH_PROXY_SETTING SXH_PROXY_SETTING;

// *********************************************************************//
// Déclaration d'énumérations définies dans la bibliothèque de types    
// *********************************************************************//
typedef enum tagDOMNodeType
{
  NODE_INVALID = 0, 
  NODE_ELEMENT = 1, 
  NODE_ATTRIBUTE = 2, 
  NODE_TEXT = 3, 
  NODE_CDATA_SECTION = 4, 
  NODE_ENTITY_REFERENCE = 5, 
  NODE_ENTITY = 6, 
  NODE_PROCESSING_INSTRUCTION = 7, 
  NODE_COMMENT = 8, 
  NODE_DOCUMENT = 9, 
  NODE_DOCUMENT_TYPE = 10, 
  NODE_DOCUMENT_FRAGMENT = 11, 
  NODE_NOTATION = 12
} tagDOMNodeType;

typedef enum _SOMITEMTYPE
{
  SOMITEM_SCHEMA = 4096, 
  SOMITEM_ATTRIBUTE = 4097, 
  SOMITEM_ATTRIBUTEGROUP = 4098, 
  SOMITEM_NOTATION = 4099, 
  SOMITEM_IDENTITYCONSTRAINT = 4352, 
  SOMITEM_KEY = 4353, 
  SOMITEM_KEYREF = 4354, 
  SOMITEM_UNIQUE = 4355, 
  SOMITEM_ANYTYPE = 8192, 
  SOMITEM_DATATYPE = 8448, 
  SOMITEM_DATATYPE_ANYTYPE = 8449, 
  SOMITEM_DATATYPE_ANYURI = 8450, 
  SOMITEM_DATATYPE_BASE64BINARY = 8451, 
  SOMITEM_DATATYPE_BOOLEAN = 8452, 
  SOMITEM_DATATYPE_BYTE = 8453, 
  SOMITEM_DATATYPE_DATE = 8454, 
  SOMITEM_DATATYPE_DATETIME = 8455, 
  SOMITEM_DATATYPE_DAY = 8456, 
  SOMITEM_DATATYPE_DECIMAL = 8457, 
  SOMITEM_DATATYPE_DOUBLE = 8458, 
  SOMITEM_DATATYPE_DURATION = 8459, 
  SOMITEM_DATATYPE_ENTITIES = 8460, 
  SOMITEM_DATATYPE_ENTITY = 8461, 
  SOMITEM_DATATYPE_FLOAT = 8462, 
  SOMITEM_DATATYPE_HEXBINARY = 8463, 
  SOMITEM_DATATYPE_ID = 8464, 
  SOMITEM_DATATYPE_IDREF = 8465, 
  SOMITEM_DATATYPE_IDREFS = 8466, 
  SOMITEM_DATATYPE_INT = 8467, 
  SOMITEM_DATATYPE_INTEGER = 8468, 
  SOMITEM_DATATYPE_LANGUAGE = 8469, 
  SOMITEM_DATATYPE_LONG = 8470, 
  SOMITEM_DATATYPE_MONTH = 8471, 
  SOMITEM_DATATYPE_MONTHDAY = 8472, 
  SOMITEM_DATATYPE_NAME = 8473, 
  SOMITEM_DATATYPE_NCNAME = 8474, 
  SOMITEM_DATATYPE_NEGATIVEINTEGER = 8475, 
  SOMITEM_DATATYPE_NMTOKEN = 8476, 
  SOMITEM_DATATYPE_NMTOKENS = 8477, 
  SOMITEM_DATATYPE_NONNEGATIVEINTEGER = 8478, 
  SOMITEM_DATATYPE_NONPOSITIVEINTEGER = 8479, 
  SOMITEM_DATATYPE_NORMALIZEDSTRING = 8480, 
  SOMITEM_DATATYPE_NOTATION = 8481, 
  SOMITEM_DATATYPE_POSITIVEINTEGER = 8482, 
  SOMITEM_DATATYPE_QNAME = 8483, 
  SOMITEM_DATATYPE_SHORT = 8484, 
  SOMITEM_DATATYPE_STRING = 8485, 
  SOMITEM_DATATYPE_TIME = 8486, 
  SOMITEM_DATATYPE_TOKEN = 8487, 
  SOMITEM_DATATYPE_UNSIGNEDBYTE = 8488, 
  SOMITEM_DATATYPE_UNSIGNEDINT = 8489, 
  SOMITEM_DATATYPE_UNSIGNEDLONG = 8490, 
  SOMITEM_DATATYPE_UNSIGNEDSHORT = 8491, 
  SOMITEM_DATATYPE_YEAR = 8492, 
  SOMITEM_DATATYPE_YEARMONTH = 8493, 
  SOMITEM_DATATYPE_ANYSIMPLETYPE = 8703, 
  SOMITEM_SIMPLETYPE = 8704, 
  SOMITEM_COMPLEXTYPE = 9216, 
  SOMITEM_PARTICLE = 16384, 
  SOMITEM_ANY = 16385, 
  SOMITEM_ANYATTRIBUTE = 16386, 
  SOMITEM_ELEMENT = 16387, 
  SOMITEM_GROUP = 16640, 
  SOMITEM_ALL = 16641, 
  SOMITEM_CHOICE = 16642, 
  SOMITEM_SEQUENCE = 16643, 
  SOMITEM_EMPTYPARTICLE = 16644, 
  SOMITEM_NULL = 2048, 
  SOMITEM_NULL_TYPE = 10240, 
  SOMITEM_NULL_ANY = 18433, 
  SOMITEM_NULL_ANYATTRIBUTE = 18434, 
  SOMITEM_NULL_ELEMENT = 18435
} _SOMITEMTYPE;

typedef enum _SCHEMADERIVATIONMETHOD
{
  SCHEMADERIVATIONMETHOD_EMPTY = 0, 
  SCHEMADERIVATIONMETHOD_SUBSTITUTION = 1, 
  SCHEMADERIVATIONMETHOD_EXTENSION = 2, 
  SCHEMADERIVATIONMETHOD_RESTRICTION = 4, 
  SCHEMADERIVATIONMETHOD_LIST = 8, 
  SCHEMADERIVATIONMETHOD_UNION = 16, 
  SCHEMADERIVATIONMETHOD_ALL = 255, 
  SCHEMADERIVATIONMETHOD_NONE = 256
} _SCHEMADERIVATIONMETHOD;

typedef enum _SCHEMATYPEVARIETY
{
  SCHEMATYPEVARIETY_NONE = 0xFFFFFFFF, 
  SCHEMATYPEVARIETY_ATOMIC = 0, 
  SCHEMATYPEVARIETY_LIST = 1, 
  SCHEMATYPEVARIETY_UNION = 2
} _SCHEMATYPEVARIETY;

typedef enum _SCHEMAWHITESPACE
{
  SCHEMAWHITESPACE_NONE = 0xFFFFFFFF, 
  SCHEMAWHITESPACE_PRESERVE = 0, 
  SCHEMAWHITESPACE_REPLACE = 1, 
  SCHEMAWHITESPACE_COLLAPSE = 2
} _SCHEMAWHITESPACE;

typedef enum _SCHEMAPROCESSCONTENTS
{
  SCHEMAPROCESSCONTENTS_NONE = 0, 
  SCHEMAPROCESSCONTENTS_SKIP = 1, 
  SCHEMAPROCESSCONTENTS_LAX = 2, 
  SCHEMAPROCESSCONTENTS_STRICT = 3
} _SCHEMAPROCESSCONTENTS;

typedef enum _SCHEMACONTENTTYPE
{
  SCHEMACONTENTTYPE_EMPTY = 0, 
  SCHEMACONTENTTYPE_TEXTONLY = 1, 
  SCHEMACONTENTTYPE_ELEMENTONLY = 2, 
  SCHEMACONTENTTYPE_MIXED = 3
} _SCHEMACONTENTTYPE;

typedef enum _SCHEMAUSE
{
  SCHEMAUSE_OPTIONAL = 0, 
  SCHEMAUSE_PROHIBITED = 1, 
  SCHEMAUSE_REQUIRED = 2
} _SCHEMAUSE;

typedef enum tagXMLEMEM_TYPE
{
  XMLELEMTYPE_ELEMENT = 0, 
  XMLELEMTYPE_TEXT = 1, 
  XMLELEMTYPE_COMMENT = 2, 
  XMLELEMTYPE_DOCUMENT = 3, 
  XMLELEMTYPE_DTD = 4, 
  XMLELEMTYPE_PI = 5, 
  XMLELEMTYPE_OTHER = 6
} tagXMLEMEM_TYPE;

typedef enum _SERVERXMLHTTP_OPTION
{
  SXH_OPTION_URL = 0xFFFFFFFF, 
  SXH_OPTION_URL_CODEPAGE = 0, 
  SXH_OPTION_ESCAPE_PERCENT_IN_URL = 1, 
  SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS = 2, 
  SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3
} _SERVERXMLHTTP_OPTION;

typedef enum _SXH_SERVER_CERT_OPTION
{
  SXH_SERVER_CERT_IGNORE_UNKNOWN_CA = 256, 
  SXH_SERVER_CERT_IGNORE_WRONG_USAGE = 512, 
  SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID = 4096, 
  SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID = 8192, 
  SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
} _SXH_SERVER_CERT_OPTION;

typedef enum _SXH_PROXY_SETTING
{
  SXH_PROXY_SET_DEFAULT = 0, 
  SXH_PROXY_SET_PRECONFIG = 0, 
  SXH_PROXY_SET_DIRECT = 1, 
  SXH_PROXY_SET_PROXY = 2
} _SXH_PROXY_SETTING;


// *********************************************************************//
// Déclaration de Structures et d'Unions définis dans la bibliothèque de types   
// *********************************************************************//
struct _xml_error
{
  unsigned _nLine;
  BSTR _pchBuf;
  unsigned _cchBuf;
  unsigned _ich;
  BSTR _pszFound;
  BSTR _pszExpected;
  unsigned_long _reserved1;
  unsigned_long _reserved2;
};

// *********************************************************************//
// Interface   : IXMLDOMImplementation
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8F-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMImplementation  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/, 
                                               TOLEBOOL* hasFeature/*[out,retval]*/) = 0; // [145]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/)
  {
    TOLEBOOL hasFeature;
    OLECHECK(this->hasFeature(feature, version, (TOLEBOOL*)&hasFeature));
    return hasFeature;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMNode
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF80-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMNode  : public IDispatch
{
public:
  // [2] name of the node
  virtual HRESULT STDMETHODCALLTYPE get_nodeName(BSTR* name/*[out,retval]*/) = 0;
  // [3] value stored in the node
  virtual HRESULT STDMETHODCALLTYPE get_nodeValue(TVariant* value/*[out,retval]*/) = 0;
  // [3] value stored in the node
  virtual HRESULT STDMETHODCALLTYPE set_nodeValue(TVariantInParam value/*[in]*/) = 0;
  // [4] the node's type
  virtual HRESULT STDMETHODCALLTYPE get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/) = 0;
  // [6] parent of the node
  virtual HRESULT STDMETHODCALLTYPE get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/) = 0;
  // [7] the collection of the node's children
  virtual HRESULT STDMETHODCALLTYPE get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/) = 0;
  // [8] first child of the node
  virtual HRESULT STDMETHODCALLTYPE get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/) = 0;
  // [9] last child of the node
  virtual HRESULT STDMETHODCALLTYPE get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/) = 0;
  // [10] left sibling of the node
  virtual HRESULT STDMETHODCALLTYPE get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/) = 0;
  // [11] right sibling of the node
  virtual HRESULT STDMETHODCALLTYPE get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/) = 0;
  // [12] the collection of the node's attributes
  virtual HRESULT STDMETHODCALLTYPE get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/) = 0;
  // [13] insert a child node
  virtual HRESULT STDMETHODCALLTYPE insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                 TVariantInParam refChild/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/) = 0;
  // [14] replace a child node
  virtual HRESULT STDMETHODCALLTYPE replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/) = 0;
  // [15] remove a child node
  virtual HRESULT STDMETHODCALLTYPE removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/) = 0;
  // [16] append a child node
  virtual HRESULT STDMETHODCALLTYPE appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/) = 0; // [17]
  // [18] document that contains the node
  virtual HRESULT STDMETHODCALLTYPE get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE cloneNode(TOLEBOOL deep/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/) = 0; // [19]
  // [21] the type of node in string form
  virtual HRESULT STDMETHODCALLTYPE get_nodeTypeString(BSTR* nodeType/*[out,retval]*/) = 0;
  // [24] text content of the node and subtree
  virtual HRESULT STDMETHODCALLTYPE get_text(BSTR* text/*[out,retval]*/) = 0;
  // [24] text content of the node and subtree
  virtual HRESULT STDMETHODCALLTYPE set_text(BSTR text/*[in]*/) = 0;
  // [22] indicates whether node is a default value
  virtual HRESULT STDMETHODCALLTYPE get_specified(TOLEBOOL* isSpecified/*[out,retval]*/) = 0;
  // [23] pointer to the definition of the node in the DTD or schema
  virtual HRESULT STDMETHODCALLTYPE get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/) = 0;
  // [25] get the strongly typed value of the node
  virtual HRESULT STDMETHODCALLTYPE get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/) = 0;
  // [25] get the strongly typed value of the node
  virtual HRESULT STDMETHODCALLTYPE set_nodeTypedValue(TVariantInParam typedValue/*[in]*/) = 0;
  // [26] the data type of the node
  virtual HRESULT STDMETHODCALLTYPE get_dataType(TVariant* dataTypeName/*[out,retval]*/) = 0;
  // [26] the data type of the node
  virtual HRESULT STDMETHODCALLTYPE set_dataType(BSTR dataTypeName/*[in]*/) = 0;
  // [27] return the XML source for the node and each of its descendants
  virtual HRESULT STDMETHODCALLTYPE get_xml(BSTR* xmlString/*[out,retval]*/) = 0;
  // [28] apply the stylesheet to the subtree
  virtual HRESULT STDMETHODCALLTYPE transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                  BSTR* xmlString/*[out,retval]*/) = 0;
  // [29] execute query on the subtree
  virtual HRESULT STDMETHODCALLTYPE selectNodes(BSTR queryString/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/) = 0;
  // [30] execute query on the subtree
  virtual HRESULT STDMETHODCALLTYPE selectSingleNode(BSTR queryString/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/) = 0;
  // [31] has sub-tree been completely parsed
  virtual HRESULT STDMETHODCALLTYPE get_parsed(TOLEBOOL* isParsed/*[out,retval]*/) = 0;
  // [32] the URI for the namespace applying to the node
  virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/) = 0;
  // [33] the prefix for the namespace applying to the node
  virtual HRESULT STDMETHODCALLTYPE get_prefix(BSTR* prefixString/*[out,retval]*/) = 0;
  // [34] the base name of the node (nodename with the prefix stripped off)
  virtual HRESULT STDMETHODCALLTYPE get_baseName(BSTR* nameString/*[out,retval]*/) = 0;
  // [35] apply the stylesheet to the subtree, returning the result through a document or a stream
  virtual HRESULT STDMETHODCALLTYPE transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                          TVariantInParam outputObject/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_nodeName(void)
  {
    BSTR name = 0;
    OLECHECK(this->get_nodeName((BSTR*)&name));
    return name;
  }

  TVariant __fastcall get_nodeValue(void)
  {
    TVariant value;
    OLECHECK(this->get_nodeValue((TVariant*)&value));
    return value;
  }

  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void)
  {
    Msxml2_tlb::DOMNodeType type;
    OLECHECK(this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type));
    return type;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr parent;
    OLECHECK(this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent));
    return parent;
  }

  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void)
  {
    Msxml2_tlb::IXMLDOMNodeListPtr childList;
    OLECHECK(this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList));
    return childList;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr firstChild;
    OLECHECK(this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild));
    return firstChild;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr lastChild;
    OLECHECK(this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild));
    return lastChild;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr previousSibling;
    OLECHECK(this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling));
    return previousSibling;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr nextSibling;
    OLECHECK(this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling));
    return nextSibling;
  }

  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void)
  {
    Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
    OLECHECK(this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap));
    return attributeMap;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr outNewChild;
    OLECHECK(this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild));
    return outNewChild;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr outOldChild;
    OLECHECK(this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild));
    return outOldChild;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr oldChild;
    OLECHECK(this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild));
    return oldChild;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr outNewChild;
    OLECHECK(this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild));
    return outNewChild;
  }

  TOLEBOOL __fastcall hasChildNodes(void)
  {
    TOLEBOOL hasChild;
    OLECHECK(this->hasChildNodes((TOLEBOOL*)&hasChild));
    return hasChild;
  }

  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void)
  {
    Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
    OLECHECK(this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument));
    return DOMDocument;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
    OLECHECK(this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot));
    return cloneRoot;
  }

  BSTR __fastcall get_nodeTypeString(void)
  {
    BSTR nodeType = 0;
    OLECHECK(this->get_nodeTypeString((BSTR*)&nodeType));
    return nodeType;
  }

  BSTR __fastcall get_text(void)
  {
    BSTR text = 0;
    OLECHECK(this->get_text((BSTR*)&text));
    return text;
  }

  TOLEBOOL __fastcall get_specified(void)
  {
    TOLEBOOL isSpecified;
    OLECHECK(this->get_specified((TOLEBOOL*)&isSpecified));
    return isSpecified;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr definitionNode;
    OLECHECK(this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode));
    return definitionNode;
  }

  TVariant __fastcall get_nodeTypedValue(void)
  {
    TVariant typedValue;
    OLECHECK(this->get_nodeTypedValue((TVariant*)&typedValue));
    return typedValue;
  }

  TVariant __fastcall get_dataType(void)
  {
    TVariant dataTypeName;
    OLECHECK(this->get_dataType((TVariant*)&dataTypeName));
    return dataTypeName;
  }

  BSTR __fastcall get_xml(void)
  {
    BSTR xmlString = 0;
    OLECHECK(this->get_xml((BSTR*)&xmlString));
    return xmlString;
  }

  BSTR __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
  {
    BSTR xmlString = 0;
    OLECHECK(this->transformNode(stylesheet, (BSTR*)&xmlString));
    return xmlString;
  }

  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodeListPtr resultList;
    OLECHECK(this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList));
    return resultList;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr resultNode;
    OLECHECK(this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode));
    return resultNode;
  }

  TOLEBOOL __fastcall get_parsed(void)
  {
    TOLEBOOL isParsed;
    OLECHECK(this->get_parsed((TOLEBOOL*)&isParsed));
    return isParsed;
  }

  BSTR __fastcall get_namespaceURI(void)
  {
    BSTR namespaceURI = 0;
    OLECHECK(this->get_namespaceURI((BSTR*)&namespaceURI));
    return namespaceURI;
  }

  BSTR __fastcall get_prefix(void)
  {
    BSTR prefixString = 0;
    OLECHECK(this->get_prefix((BSTR*)&prefixString));
    return prefixString;
  }

  BSTR __fastcall get_baseName(void)
  {
    BSTR nameString = 0;
    OLECHECK(this->get_baseName((BSTR*)&nameString));
    return nameString;
  }


  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMNodeList
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF82-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMNodeList  : public IDispatch
{
public:
  // [0] collection of nodes
  virtual HRESULT STDMETHODCALLTYPE get_item(long index/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/) = 0;
  // [74] number of nodes in the collection
  virtual HRESULT STDMETHODCALLTYPE get_length(long* listLength/*[out,retval]*/) = 0;
  // [76] get next node from iterator
  virtual HRESULT STDMETHODCALLTYPE nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/) = 0;
  // [77] reset the position of iterator
  virtual HRESULT STDMETHODCALLTYPE reset(void) = 0;
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_item(long index/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr listItem;
    OLECHECK(this->get_item(index, (Msxml2_tlb::IXMLDOMNodePtr*)&listItem));
    return listItem;
  }

  long __fastcall get_length(void)
  {
    long listLength;
    OLECHECK(this->get_length((long*)&listLength));
    return listLength;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall nextNode(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr nextItem;
    OLECHECK(this->nextNode((Msxml2_tlb::IXMLDOMNodePtr*)&nextItem));
    return nextItem;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMNamedNodeMap
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF83-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMNamedNodeMap  : public IDispatch
{
public:
  // [83] lookup item by name
  virtual HRESULT STDMETHODCALLTYPE getNamedItem(BSTR name/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/) = 0;
  // [84] set item by name
  virtual HRESULT STDMETHODCALLTYPE setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* nameItem/*[out,retval]*/) = 0;
  // [85] remove item by name
  virtual HRESULT STDMETHODCALLTYPE removeNamedItem(BSTR name/*[in]*/, 
                                                    Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/) = 0;
  // [0] collection of nodes
  virtual HRESULT STDMETHODCALLTYPE get_item(long index/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/) = 0;
  // [74] number of nodes in the collection
  virtual HRESULT STDMETHODCALLTYPE get_length(long* listLength/*[out,retval]*/) = 0;
  // [87] lookup the item by name and namespace
  virtual HRESULT STDMETHODCALLTYPE getQualifiedItem(BSTR baseName/*[in]*/, 
                                                     BSTR namespaceURI/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/) = 0;
  // [88] remove the item by name and namespace
  virtual HRESULT STDMETHODCALLTYPE removeQualifiedItem(BSTR baseName/*[in]*/, 
                                                        BSTR namespaceURI/*[in]*/, 
                                                        Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/) = 0;
  // [89] get next node from iterator
  virtual HRESULT STDMETHODCALLTYPE nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/) = 0;
  // [90] reset the position of iterator
  virtual HRESULT STDMETHODCALLTYPE reset(void) = 0;
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMNodePtr __fastcall getNamedItem(BSTR name/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr namedItem;
    OLECHECK(this->getNamedItem(name, (Msxml2_tlb::IXMLDOMNodePtr*)&namedItem));
    return namedItem;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr nameItem;
    OLECHECK(this->setNamedItem(newItem, (Msxml2_tlb::IXMLDOMNodePtr*)&nameItem));
    return nameItem;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeNamedItem(BSTR name/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr namedItem;
    OLECHECK(this->removeNamedItem(name, (Msxml2_tlb::IXMLDOMNodePtr*)&namedItem));
    return namedItem;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_item(long index/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr listItem;
    OLECHECK(this->get_item(index, (Msxml2_tlb::IXMLDOMNodePtr*)&listItem));
    return listItem;
  }

  long __fastcall get_length(void)
  {
    long listLength;
    OLECHECK(this->get_length((long*)&listLength));
    return listLength;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall getQualifiedItem(BSTR baseName/*[in]*/, 
                                                         BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr qualifiedItem;
    OLECHECK(this->getQualifiedItem(baseName, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&qualifiedItem));
    return qualifiedItem;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeQualifiedItem(BSTR baseName/*[in]*/, 
                                                            BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr qualifiedItem;
    OLECHECK(this->removeQualifiedItem(baseName, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&qualifiedItem));
    return qualifiedItem;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall nextNode(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr nextItem;
    OLECHECK(this->nextNode((Msxml2_tlb::IXMLDOMNodePtr*)&nextItem));
    return nextItem;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMDocument
// Indicateurs : (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF81-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMDocument  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [38] node corresponding to the DOCTYPE
  virtual HRESULT STDMETHODCALLTYPE get_doctype(Msxml2_tlb::IXMLDOMDocumentTypePtr* documentType/*[out,retval]*/) = 0;
  // [39] info on this DOM implementation
  virtual HRESULT STDMETHODCALLTYPE get_implementation(Msxml2_tlb::IXMLDOMImplementationPtr* impl/*[out,retval]*/) = 0;
  // [40] the root of the tree
  virtual HRESULT STDMETHODCALLTYPE get_documentElement(Msxml2_tlb::IXMLDOMElementPtr* DOMElement/*[out,retval]*/) = 0;
  // [40] the root of the tree
  virtual HRESULT STDMETHODCALLTYPE _set_documentElement(Msxml2_tlb::IXMLDOMElementPtr DOMElement/*[in]*/) = 0;
  // [41] create an Element node
  virtual HRESULT STDMETHODCALLTYPE createElement(BSTR tagName/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMElementPtr* element/*[out,retval]*/) = 0;
  // [42] create a DocumentFragment node
  virtual HRESULT STDMETHODCALLTYPE createDocumentFragment(Msxml2_tlb::IXMLDOMDocumentFragmentPtr* docFrag/*[out,retval]*/) = 0;
  // [43] create a text node
  virtual HRESULT STDMETHODCALLTYPE createTextNode(BSTR data/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMTextPtr* text/*[out,retval]*/) = 0;
  // [44] create a comment node
  virtual HRESULT STDMETHODCALLTYPE createComment(BSTR data/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMCommentPtr* comment/*[out,retval]*/) = 0;
  // [45] create a CDATA section node
  virtual HRESULT STDMETHODCALLTYPE createCDATASection(BSTR data/*[in]*/, 
                                                       Msxml2_tlb::IXMLDOMCDATASectionPtr* cdata/*[out,retval]*/) = 0;
  // [46] create a processing instruction node
  virtual HRESULT STDMETHODCALLTYPE createProcessingInstruction(BSTR target/*[in]*/, 
                                                                BSTR data/*[in]*/, 
                                                                Msxml2_tlb::IXMLDOMProcessingInstructionPtr* pi/*[out,retval]*/) = 0;
  // [47] create an attribute node
  virtual HRESULT STDMETHODCALLTYPE createAttribute(BSTR name/*[in]*/, 
                                                    Msxml2_tlb::IXMLDOMAttributePtr* attribute/*[out,retval]*/) = 0;
  // [49] create an entity reference node
  virtual HRESULT STDMETHODCALLTYPE createEntityReference(BSTR name/*[in]*/, 
                                                          Msxml2_tlb::IXMLDOMEntityReferencePtr* entityRef/*[out,retval]*/) = 0;
  // [50] build a list of elements by name
  virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(BSTR tagName/*[in]*/, 
                                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/) = 0;
  // [54] create a node of the specified node type and name
  virtual HRESULT STDMETHODCALLTYPE createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                               BSTR namespaceURI/*[in]*/, 
                                               Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/) = 0;
  // [56] retrieve node from it's ID
  virtual HRESULT STDMETHODCALLTYPE nodeFromID(BSTR idString/*[in]*/, 
                                               Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/) = 0;
  // [58] load document from the specified XML source
  virtual HRESULT STDMETHODCALLTYPE load(TVariantInParam xmlSource/*[in]*/, 
                                         TOLEBOOL* isSuccessful/*[out,retval]*/) = 0;
  // [-525] get the state of the XML document
  virtual HRESULT STDMETHODCALLTYPE get_readyState(long* value/*[out,retval]*/) = 0;
  // [59] get the last parser error
  virtual HRESULT STDMETHODCALLTYPE get_parseError(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/) = 0;
  // [60] get the URL for the loaded XML document
  virtual HRESULT STDMETHODCALLTYPE get_url(BSTR* urlString/*[out,retval]*/) = 0;
  // [61] flag for asynchronous download
  virtual HRESULT STDMETHODCALLTYPE get_async(TOLEBOOL* isAsync/*[out,retval]*/) = 0;
  // [61] flag for asynchronous download
  virtual HRESULT STDMETHODCALLTYPE set_async(TOLEBOOL isAsync/*[in]*/) = 0;
  // [62] abort an asynchronous download
  virtual HRESULT STDMETHODCALLTYPE abort(void) = 0;
  // [63] load the document from a string
  virtual HRESULT STDMETHODCALLTYPE loadXML(BSTR bstrXML/*[in]*/, 
                                            TOLEBOOL* isSuccessful/*[out,retval]*/) = 0;
  // [64] save the document to a specified destination
  virtual HRESULT STDMETHODCALLTYPE save(TVariantInParam destination/*[in]*/) = 0;
  // [65] indicates whether the parser performs validation
  virtual HRESULT STDMETHODCALLTYPE get_validateOnParse(TOLEBOOL* isValidating/*[out,retval]*/) = 0;
  // [65] indicates whether the parser performs validation
  virtual HRESULT STDMETHODCALLTYPE set_validateOnParse(TOLEBOOL isValidating/*[in]*/) = 0;
  // [66] indicates whether the parser resolves references to external DTD/Entities/Schema
  virtual HRESULT STDMETHODCALLTYPE get_resolveExternals(TOLEBOOL* isResolving/*[out,retval]*/) = 0;
  // [66] indicates whether the parser resolves references to external DTD/Entities/Schema
  virtual HRESULT STDMETHODCALLTYPE set_resolveExternals(TOLEBOOL isResolving/*[in]*/) = 0;
  // [67] indicates whether the parser preserves whitespace
  virtual HRESULT STDMETHODCALLTYPE get_preserveWhiteSpace(TOLEBOOL* isPreserving/*[out,retval]*/) = 0;
  // [67] indicates whether the parser preserves whitespace
  virtual HRESULT STDMETHODCALLTYPE set_preserveWhiteSpace(TOLEBOOL isPreserving/*[in]*/) = 0;
  // [68] register a readystatechange event handler
  virtual HRESULT STDMETHODCALLTYPE set_onreadystatechange(TVariantInParam Param1/*[in]*/) = 0;
  // [69] register an ondataavailable event handler
  virtual HRESULT STDMETHODCALLTYPE set_ondataavailable(TVariantInParam Param1/*[in]*/) = 0;
  // [70] register an ontransformnode event handler
  virtual HRESULT STDMETHODCALLTYPE set_ontransformnode(TVariantInParam Param1/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMDocumentTypePtr __fastcall get_doctype(void)
  {
    Msxml2_tlb::IXMLDOMDocumentTypePtr documentType;
    OLECHECK(this->get_doctype((Msxml2_tlb::IXMLDOMDocumentTypePtr*)&documentType));
    return documentType;
  }

  Msxml2_tlb::IXMLDOMImplementationPtr __fastcall get_implementation(void)
  {
    Msxml2_tlb::IXMLDOMImplementationPtr impl;
    OLECHECK(this->get_implementation((Msxml2_tlb::IXMLDOMImplementationPtr*)&impl));
    return impl;
  }

  Msxml2_tlb::IXMLDOMElementPtr __fastcall get_documentElement(void)
  {
    Msxml2_tlb::IXMLDOMElementPtr DOMElement;
    OLECHECK(this->get_documentElement((Msxml2_tlb::IXMLDOMElementPtr*)&DOMElement));
    return DOMElement;
  }

  Msxml2_tlb::IXMLDOMElementPtr __fastcall createElement(BSTR tagName/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMElementPtr element;
    OLECHECK(this->createElement(tagName, (Msxml2_tlb::IXMLDOMElementPtr*)&element));
    return element;
  }

  Msxml2_tlb::IXMLDOMDocumentFragmentPtr __fastcall createDocumentFragment(void)
  {
    Msxml2_tlb::IXMLDOMDocumentFragmentPtr docFrag;
    OLECHECK(this->createDocumentFragment((Msxml2_tlb::IXMLDOMDocumentFragmentPtr*)&docFrag));
    return docFrag;
  }

  Msxml2_tlb::IXMLDOMTextPtr __fastcall createTextNode(BSTR data/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMTextPtr text;
    OLECHECK(this->createTextNode(data, (Msxml2_tlb::IXMLDOMTextPtr*)&text));
    return text;
  }

  Msxml2_tlb::IXMLDOMCommentPtr __fastcall createComment(BSTR data/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMCommentPtr comment;
    OLECHECK(this->createComment(data, (Msxml2_tlb::IXMLDOMCommentPtr*)&comment));
    return comment;
  }

  Msxml2_tlb::IXMLDOMCDATASectionPtr __fastcall createCDATASection(BSTR data/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMCDATASectionPtr cdata;
    OLECHECK(this->createCDATASection(data, (Msxml2_tlb::IXMLDOMCDATASectionPtr*)&cdata));
    return cdata;
  }

  Msxml2_tlb::IXMLDOMProcessingInstructionPtr __fastcall createProcessingInstruction(BSTR target/*[in]*/, 
                                                                                     BSTR data/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMProcessingInstructionPtr pi;
    OLECHECK(this->createProcessingInstruction(target, data, (Msxml2_tlb::IXMLDOMProcessingInstructionPtr*)&pi));
    return pi;
  }

  Msxml2_tlb::IXMLDOMAttributePtr __fastcall createAttribute(BSTR name/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMAttributePtr attribute;
    OLECHECK(this->createAttribute(name, (Msxml2_tlb::IXMLDOMAttributePtr*)&attribute));
    return attribute;
  }

  Msxml2_tlb::IXMLDOMEntityReferencePtr __fastcall createEntityReference(BSTR name/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMEntityReferencePtr entityRef;
    OLECHECK(this->createEntityReference(name, (Msxml2_tlb::IXMLDOMEntityReferencePtr*)&entityRef));
    return entityRef;
  }

  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall getElementsByTagName(BSTR tagName/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodeListPtr resultList;
    OLECHECK(this->getElementsByTagName(tagName, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList));
    return resultList;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                                   BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr node;
    OLECHECK(this->createNode(type, name, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&node));
    return node;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall nodeFromID(BSTR idString/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr node;
    OLECHECK(this->nodeFromID(idString, (Msxml2_tlb::IXMLDOMNodePtr*)&node));
    return node;
  }

  TOLEBOOL __fastcall load(TVariantInParam xmlSource/*[in]*/)
  {
    TOLEBOOL isSuccessful;
    OLECHECK(this->load(xmlSource, (TOLEBOOL*)&isSuccessful));
    return isSuccessful;
  }

  long __fastcall get_readyState(void)
  {
    long value;
    OLECHECK(this->get_readyState((long*)&value));
    return value;
  }

  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall get_parseError(void)
  {
    Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
    OLECHECK(this->get_parseError((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj));
    return errorObj;
  }

  BSTR __fastcall get_url(void)
  {
    BSTR urlString = 0;
    OLECHECK(this->get_url((BSTR*)&urlString));
    return urlString;
  }

  TOLEBOOL __fastcall get_async(void)
  {
    TOLEBOOL isAsync;
    OLECHECK(this->get_async((TOLEBOOL*)&isAsync));
    return isAsync;
  }

  TOLEBOOL __fastcall loadXML(BSTR bstrXML/*[in]*/)
  {
    TOLEBOOL isSuccessful;
    OLECHECK(this->loadXML(bstrXML, (TOLEBOOL*)&isSuccessful));
    return isSuccessful;
  }

  TOLEBOOL __fastcall get_validateOnParse(void)
  {
    TOLEBOOL isValidating;
    OLECHECK(this->get_validateOnParse((TOLEBOOL*)&isValidating));
    return isValidating;
  }

  TOLEBOOL __fastcall get_resolveExternals(void)
  {
    TOLEBOOL isResolving;
    OLECHECK(this->get_resolveExternals((TOLEBOOL*)&isResolving));
    return isResolving;
  }

  TOLEBOOL __fastcall get_preserveWhiteSpace(void)
  {
    TOLEBOOL isPreserving;
    OLECHECK(this->get_preserveWhiteSpace((TOLEBOOL*)&isPreserving));
    return isPreserving;
  }


  __property   Msxml2_tlb::IXMLDOMDocumentTypePtr doctype = {read = get_doctype};
  __property   Msxml2_tlb::IXMLDOMImplementationPtr implementation = {read = get_implementation};
  __property   Msxml2_tlb::IXMLDOMElementPtr documentElement = {read = get_documentElement, write = _set_documentElement};
  __property   long            readyState = {read = get_readyState};
  __property   Msxml2_tlb::IXMLDOMParseErrorPtr parseError = {read = get_parseError};
  __property   BSTR            url = {read = get_url};
  __property   TOLEBOOL        async = {read = get_async, write = set_async};
  __property   TOLEBOOL        validateOnParse = {read = get_validateOnParse, write = set_validateOnParse};
  __property   TOLEBOOL        resolveExternals = {read = get_resolveExternals, write = set_resolveExternals};
  __property   TOLEBOOL        preserveWhiteSpace = {read = get_preserveWhiteSpace, write = set_preserveWhiteSpace};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMDocumentType
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8B-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMDocumentType  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [131] name of the document type (root of the tree)
  virtual HRESULT STDMETHODCALLTYPE get_name(BSTR* rootName/*[out,retval]*/) = 0;
  // [132] a list of entities in the document
  virtual HRESULT STDMETHODCALLTYPE get_entities(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* entityMap/*[out,retval]*/) = 0;
  // [133] a list of notations in the document
  virtual HRESULT STDMETHODCALLTYPE get_notations(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* notationMap/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_name(void)
  {
    BSTR rootName = 0;
    OLECHECK(this->get_name((BSTR*)&rootName));
    return rootName;
  }

  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_entities(void)
  {
    Msxml2_tlb::IXMLDOMNamedNodeMapPtr entityMap;
    OLECHECK(this->get_entities((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&entityMap));
    return entityMap;
  }

  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_notations(void)
  {
    Msxml2_tlb::IXMLDOMNamedNodeMapPtr notationMap;
    OLECHECK(this->get_notations((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&notationMap));
    return notationMap;
  }


  __property   BSTR            name = {read = get_name};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr entities = {read = get_entities};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr notations = {read = get_notations};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMElement
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF86-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMElement  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [97] get the tagName of the element
  virtual HRESULT STDMETHODCALLTYPE get_tagName(BSTR* tagName/*[out,retval]*/) = 0;
  // [99] look up the string value of an attribute by name
  virtual HRESULT STDMETHODCALLTYPE getAttribute(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/) = 0;
  // [100] set the string value of an attribute by name
  virtual HRESULT STDMETHODCALLTYPE setAttribute(BSTR name/*[in]*/, TVariantInParam value/*[in]*/) = 0;
  // [101] remove an attribute by name
  virtual HRESULT STDMETHODCALLTYPE removeAttribute(BSTR name/*[in]*/) = 0;
  // [102] look up the attribute node by name
  virtual HRESULT STDMETHODCALLTYPE getAttributeNode(BSTR name/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/) = 0;
  // [103] set the specified attribute on the element
  virtual HRESULT STDMETHODCALLTYPE setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/) = 0;
  // [104] remove the specified attribute
  virtual HRESULT STDMETHODCALLTYPE removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/, 
                                                        Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/) = 0;
  // [105] build a list of elements by name
  virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(BSTR tagName/*[in]*/, 
                                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/) = 0;
  // [106] collapse all adjacent text nodes in sub-tree
  virtual HRESULT STDMETHODCALLTYPE normalize(void) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_tagName(void)
  {
    BSTR tagName = 0;
    OLECHECK(this->get_tagName((BSTR*)&tagName));
    return tagName;
  }

  TVariant __fastcall getAttribute(BSTR name/*[in]*/)
  {
    TVariant value;
    OLECHECK(this->getAttribute(name, (TVariant*)&value));
    return value;
  }

  Msxml2_tlb::IXMLDOMAttributePtr __fastcall getAttributeNode(BSTR name/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
    OLECHECK(this->getAttributeNode(name, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode));
    return attributeNode;
  }

  Msxml2_tlb::IXMLDOMAttributePtr __fastcall setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
    OLECHECK(this->setAttributeNode(DOMAttribute, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode));
    return attributeNode;
  }

  Msxml2_tlb::IXMLDOMAttributePtr __fastcall removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
    OLECHECK(this->removeAttributeNode(DOMAttribute, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode));
    return attributeNode;
  }

  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall getElementsByTagName(BSTR tagName/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodeListPtr resultList;
    OLECHECK(this->getElementsByTagName(tagName, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList));
    return resultList;
  }


  __property   BSTR            tagName = {read = get_tagName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMAttribute
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF85-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMAttribute  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [118] get name of the attribute
  virtual HRESULT STDMETHODCALLTYPE get_name(BSTR* attributeName/*[out,retval]*/) = 0;
  // [120] string value of the attribute
  virtual HRESULT STDMETHODCALLTYPE get_value(TVariant* attributeValue/*[out,retval]*/) = 0;
  // [120] string value of the attribute
  virtual HRESULT STDMETHODCALLTYPE set_value(TVariantInParam attributeValue/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_name(void)
  {
    BSTR attributeName = 0;
    OLECHECK(this->get_name((BSTR*)&attributeName));
    return attributeName;
  }

  TVariant __fastcall get_value(void)
  {
    TVariant attributeValue;
    OLECHECK(this->get_value((TVariant*)&attributeValue));
    return attributeValue;
  }


  __property   BSTR            name = {read = get_name};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMDocumentFragment
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {3EFAA413-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
interface IXMLDOMDocumentFragment  : public Msxml2_tlb::IXMLDOMNode
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMCharacterData
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF84-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMCharacterData  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [109] value of the node
  virtual HRESULT STDMETHODCALLTYPE get_data(BSTR* data/*[out,retval]*/) = 0;
  // [109] value of the node
  virtual HRESULT STDMETHODCALLTYPE set_data(BSTR data/*[in]*/) = 0;
  // [110] number of characters in value
  virtual HRESULT STDMETHODCALLTYPE get_length(long* dataLength/*[out,retval]*/) = 0;
  // [111] retrieve substring of value
  virtual HRESULT STDMETHODCALLTYPE substringData(long offset/*[in]*/, long count/*[in]*/, 
                                                  BSTR* data/*[out,retval]*/) = 0;
  // [112] append string to value
  virtual HRESULT STDMETHODCALLTYPE appendData(BSTR data/*[in]*/) = 0;
  // [113] insert string into value
  virtual HRESULT STDMETHODCALLTYPE insertData(long offset/*[in]*/, BSTR data/*[in]*/) = 0;
  // [114] delete string within the value
  virtual HRESULT STDMETHODCALLTYPE deleteData(long offset/*[in]*/, long count/*[in]*/) = 0;
  // [115] replace string within the value
  virtual HRESULT STDMETHODCALLTYPE replaceData(long offset/*[in]*/, long count/*[in]*/, 
                                                BSTR data/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_data(void)
  {
    BSTR data = 0;
    OLECHECK(this->get_data((BSTR*)&data));
    return data;
  }

  long __fastcall get_length(void)
  {
    long dataLength;
    OLECHECK(this->get_length((long*)&dataLength));
    return dataLength;
  }

  BSTR __fastcall substringData(long offset/*[in]*/, long count/*[in]*/)
  {
    BSTR data = 0;
    OLECHECK(this->substringData(offset, count, (BSTR*)&data));
    return data;
  }


  __property   BSTR            data = {read = get_data, write = set_data};
  __property   long            length = {read = get_length};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMText
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF87-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMText  : public Msxml2_tlb::IXMLDOMCharacterData
{
public:
  // [123] split the text node into two text nodes at the position specified
  virtual HRESULT STDMETHODCALLTYPE splitText(long offset/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMTextPtr* rightHandTextNode/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMTextPtr __fastcall splitText(long offset/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMTextPtr rightHandTextNode;
    OLECHECK(this->splitText(offset, (Msxml2_tlb::IXMLDOMTextPtr*)&rightHandTextNode));
    return rightHandTextNode;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMComment
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF88-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMComment  : public Msxml2_tlb::IXMLDOMCharacterData
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMCDATASection
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8A-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMCDATASection  : public Msxml2_tlb::IXMLDOMText
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMProcessingInstruction
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF89-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMProcessingInstruction  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [127] the target
  virtual HRESULT STDMETHODCALLTYPE get_target(BSTR* name/*[out,retval]*/) = 0;
  // [128] the data
  virtual HRESULT STDMETHODCALLTYPE get_data(BSTR* value/*[out,retval]*/) = 0;
  // [128] the data
  virtual HRESULT STDMETHODCALLTYPE set_data(BSTR value/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_target(void)
  {
    BSTR name = 0;
    OLECHECK(this->get_target((BSTR*)&name));
    return name;
  }

  BSTR __fastcall get_data(void)
  {
    BSTR value = 0;
    OLECHECK(this->get_data((BSTR*)&value));
    return value;
  }


  __property   BSTR            target = {read = get_target};
  __property   BSTR            data = {read = get_data, write = set_data};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMEntityReference
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8E-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMEntityReference  : public Msxml2_tlb::IXMLDOMNode
{
public:

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMParseError
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {3EFAA426-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
interface IXMLDOMParseError  : public IDispatch
{
public:
  // [0] the error code
  virtual HRESULT STDMETHODCALLTYPE get_errorCode(long* errorCode/*[out,retval]*/) = 0;
  // [179] the URL of the XML document containing the error
  virtual HRESULT STDMETHODCALLTYPE get_url(BSTR* urlString/*[out,retval]*/) = 0;
  // [180] the cause of the error
  virtual HRESULT STDMETHODCALLTYPE get_reason(BSTR* reasonString/*[out,retval]*/) = 0;
  // [181] the data where the error occurred
  virtual HRESULT STDMETHODCALLTYPE get_srcText(BSTR* sourceString/*[out,retval]*/) = 0;
  // [182] the line number in the XML document where the error occurred
  virtual HRESULT STDMETHODCALLTYPE get_line(long* lineNumber/*[out,retval]*/) = 0;
  // [183] the character position in the line containing the error
  virtual HRESULT STDMETHODCALLTYPE get_linepos(long* linePosition/*[out,retval]*/) = 0;
  // [184] the absolute file position in the XML document containing the error
  virtual HRESULT STDMETHODCALLTYPE get_filepos(long* filePosition/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_errorCode(void)
  {
    long errorCode;
    OLECHECK(this->get_errorCode((long*)&errorCode));
    return errorCode;
  }

  BSTR __fastcall get_url(void)
  {
    BSTR urlString = 0;
    OLECHECK(this->get_url((BSTR*)&urlString));
    return urlString;
  }

  BSTR __fastcall get_reason(void)
  {
    BSTR reasonString = 0;
    OLECHECK(this->get_reason((BSTR*)&reasonString));
    return reasonString;
  }

  BSTR __fastcall get_srcText(void)
  {
    BSTR sourceString = 0;
    OLECHECK(this->get_srcText((BSTR*)&sourceString));
    return sourceString;
  }

  long __fastcall get_line(void)
  {
    long lineNumber;
    OLECHECK(this->get_line((long*)&lineNumber));
    return lineNumber;
  }

  long __fastcall get_linepos(void)
  {
    long linePosition;
    OLECHECK(this->get_linepos((long*)&linePosition));
    return linePosition;
  }

  long __fastcall get_filepos(void)
  {
    long filePosition;
    OLECHECK(this->get_filepos((long*)&filePosition));
    return filePosition;
  }


  __property   long            errorCode = {read = get_errorCode};
  __property   BSTR            url = {read = get_url};
  __property   BSTR            reason = {read = get_reason};
  __property   BSTR            srcText = {read = get_srcText};
  __property   long            line = {read = get_line};
  __property   long            linepos = {read = get_linepos};
  __property   long            filepos = {read = get_filepos};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMDocument2
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF95-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMDocument2  : public Msxml2_tlb::IXMLDOMDocument
{
public:
  // [201] A collection of all namespaces for this document
  virtual HRESULT STDMETHODCALLTYPE get_namespaces(Msxml2_tlb::IXMLDOMSchemaCollectionPtr* namespaceCollection/*[out,retval]*/) = 0;
  // [202] The associated schema cache
  virtual HRESULT STDMETHODCALLTYPE get_schemas(TVariant* otherCollection/*[out,retval]*/) = 0;
  // [202] The associated schema cache
  virtual HRESULT STDMETHODCALLTYPE _set_schemas(TVariantInParam otherCollection/*[in]*/) = 0;
  // [203] perform runtime validation on the currently loaded XML document
  virtual HRESULT STDMETHODCALLTYPE validate(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/) = 0;
  // [204] set the value of the named property
  virtual HRESULT STDMETHODCALLTYPE setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/) = 0;
  // [205] get the value of the named property
  virtual HRESULT STDMETHODCALLTYPE getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMSchemaCollectionPtr __fastcall get_namespaces(void)
  {
    Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaceCollection;
    OLECHECK(this->get_namespaces((Msxml2_tlb::IXMLDOMSchemaCollectionPtr*)&namespaceCollection));
    return namespaceCollection;
  }

  TVariant __fastcall get_schemas(void)
  {
    TVariant otherCollection;
    OLECHECK(this->get_schemas((TVariant*)&otherCollection));
    return otherCollection;
  }

  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall validate(void)
  {
    Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
    OLECHECK(this->validate((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj));
    return errorObj;
  }

  TVariant __fastcall getProperty(BSTR name/*[in]*/)
  {
    TVariant value;
    OLECHECK(this->getProperty(name, (TVariant*)&value));
    return value;
  }


  __property   Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaces = {read = get_namespaces};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMSchemaCollection
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {373984C8-B845-449B-91E7-45AC83036ADE}
// *********************************************************************//
interface IXMLDOMSchemaCollection  : public IDispatch
{
public:
  // [2] add a new schema
  virtual HRESULT STDMETHODCALLTYPE add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/) = 0;
  // [3] lookup schema by namespaceURI
  virtual HRESULT STDMETHODCALLTYPE get(BSTR namespaceURI/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/) = 0;
  // [4] remove schema by namespaceURI
  virtual HRESULT STDMETHODCALLTYPE remove(BSTR namespaceURI/*[in]*/) = 0;
  // [5] number of schemas in collection
  virtual HRESULT STDMETHODCALLTYPE get_length(long* length/*[out,retval]*/) = 0;
  // [0] Get namespaceURI for schema by index
  virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(long index/*[in]*/, 
                                                     BSTR* length/*[out,retval]*/) = 0;
  // [6] copy & merge other collection into this one
  virtual HRESULT STDMETHODCALLTYPE addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get(BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr schemaNode;
    OLECHECK(this->get(namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&schemaNode));
    return schemaNode;
  }

  long __fastcall get_length(void)
  {
    long length;
    OLECHECK(this->get_length((long*)&length));
    return length;
  }

  BSTR __fastcall get_namespaceURI(long index/*[in]*/)
  {
    BSTR length = 0;
    OLECHECK(this->get_namespaceURI(index, (BSTR*)&length));
    return length;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMNotation
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8C-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMNotation  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [136] the public ID
  virtual HRESULT STDMETHODCALLTYPE get_publicId(TVariant* publicId/*[out,retval]*/) = 0;
  // [137] the system ID
  virtual HRESULT STDMETHODCALLTYPE get_systemId(TVariant* systemId/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_publicId(void)
  {
    TVariant publicId;
    OLECHECK(this->get_publicId((TVariant*)&publicId));
    return publicId;
  }

  TVariant __fastcall get_systemId(void)
  {
    TVariant systemId;
    OLECHECK(this->get_systemId((TVariant*)&systemId));
    return systemId;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMEntity
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF8D-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXMLDOMEntity  : public Msxml2_tlb::IXMLDOMNode
{
public:
  // [140] the public ID
  virtual HRESULT STDMETHODCALLTYPE get_publicId(TVariant* publicId/*[out,retval]*/) = 0;
  // [141] the system ID
  virtual HRESULT STDMETHODCALLTYPE get_systemId(TVariant* systemId/*[out,retval]*/) = 0;
  // [142] the name of the notation
  virtual HRESULT STDMETHODCALLTYPE get_notationName(BSTR* name/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_publicId(void)
  {
    TVariant publicId;
    OLECHECK(this->get_publicId((TVariant*)&publicId));
    return publicId;
  }

  TVariant __fastcall get_systemId(void)
  {
    TVariant systemId;
    OLECHECK(this->get_systemId((TVariant*)&systemId));
    return systemId;
  }

  BSTR __fastcall get_notationName(void)
  {
    BSTR name = 0;
    OLECHECK(this->get_notationName((BSTR*)&name));
    return name;
  }


  __property   BSTR            notationName = {read = get_notationName};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXTLRuntime
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {3EFAA425-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
interface IXTLRuntime  : public Msxml2_tlb::IXMLDOMNode
{
public:
  virtual HRESULT STDMETHODCALLTYPE uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                             long* pID/*[out,retval]*/) = 0; // [187]
  virtual HRESULT STDMETHODCALLTYPE depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                          long* pDepth/*[out,retval]*/) = 0; // [188]
  virtual HRESULT STDMETHODCALLTYPE childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                                long* pNumber/*[out,retval]*/) = 0; // [189]
  virtual HRESULT STDMETHODCALLTYPE ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                                        Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                                        long* pNumber/*[out,retval]*/) = 0; // [190]
  virtual HRESULT STDMETHODCALLTYPE absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                                        long* pNumber/*[out,retval]*/) = 0; // [191]
  virtual HRESULT STDMETHODCALLTYPE formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                                BSTR* pbstrFormattedString/*[out,retval]*/) = 0; // [192]
  virtual HRESULT STDMETHODCALLTYPE formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                                 BSTR* pbstrFormattedString/*[out,retval]*/) = 0; // [193]
  virtual HRESULT STDMETHODCALLTYPE formatDate(TVariantInParam varDate/*[in]*/, 
                                               BSTR bstrFormat/*[in]*/, 
                                               TVariantInParam varDestLocale/*[in,opt]*/, 
                                               BSTR* pbstrFormattedString/*[out,retval]*/) = 0; // [194]
  virtual HRESULT STDMETHODCALLTYPE formatTime(TVariantInParam varTime/*[in]*/, 
                                               BSTR bstrFormat/*[in]*/, 
                                               TVariantInParam varDestLocale/*[in,opt]*/, 
                                               BSTR* pbstrFormattedString/*[out,retval]*/) = 0; // [195]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    long pID;
    OLECHECK(this->uniqueID(pNode, (long*)&pID));
    return pID;
  }

  long __fastcall depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    long pDepth;
    OLECHECK(this->depth(pNode, (long*)&pDepth));
    return pDepth;
  }

  long __fastcall childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    long pNumber;
    OLECHECK(this->childNumber(pNode, (long*)&pNumber));
    return pNumber;
  }

  long __fastcall ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    long pNumber;
    OLECHECK(this->ancestorChildNumber(bstrNodeName, pNode, (long*)&pNumber));
    return pNumber;
  }

  long __fastcall absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    long pNumber;
    OLECHECK(this->absoluteChildNumber(pNode, (long*)&pNumber));
    return pNumber;
  }

  BSTR __fastcall formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/)
  {
    BSTR pbstrFormattedString = 0;
    OLECHECK(this->formatIndex(lIndex, bstrFormat, (BSTR*)&pbstrFormattedString));
    return pbstrFormattedString;
  }

  BSTR __fastcall formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/)
  {
    BSTR pbstrFormattedString = 0;
    OLECHECK(this->formatNumber(dblNumber, bstrFormat, (BSTR*)&pbstrFormattedString));
    return pbstrFormattedString;
  }

  BSTR __fastcall formatDate(TVariantInParam varDate/*[in]*/, BSTR bstrFormat/*[in]*/, 
                             TVariantInParam varDestLocale/*[in,opt]*/= TNoParam())
  {
    BSTR pbstrFormattedString = 0;
    OLECHECK(this->formatDate(varDate, bstrFormat, varDestLocale, (BSTR*)&pbstrFormattedString));
    return pbstrFormattedString;
  }

  BSTR __fastcall formatTime(TVariantInParam varTime/*[in]*/, BSTR bstrFormat/*[in]*/, 
                             TVariantInParam varDestLocale/*[in,opt]*/= TNoParam())
  {
    BSTR pbstrFormattedString = 0;
    OLECHECK(this->formatTime(varTime, bstrFormat, varDestLocale, (BSTR*)&pbstrFormattedString));
    return pbstrFormattedString;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXSLTemplate
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF93-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXSLTemplate  : public IDispatch
{
public:
  // [2] stylesheet to use with processors
  virtual HRESULT STDMETHODCALLTYPE _set_stylesheet(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/) = 0;
  // [2] stylesheet to use with processors
  virtual HRESULT STDMETHODCALLTYPE get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/) = 0;
  // [3] create a new processor object
  virtual HRESULT STDMETHODCALLTYPE createProcessor(Msxml2_tlb::IXSLProcessorPtr* ppProcessor/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_stylesheet(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr stylesheet;
    OLECHECK(this->get_stylesheet((Msxml2_tlb::IXMLDOMNodePtr*)&stylesheet));
    return stylesheet;
  }

  Msxml2_tlb::IXSLProcessorPtr __fastcall createProcessor(void)
  {
    Msxml2_tlb::IXSLProcessorPtr ppProcessor;
    OLECHECK(this->createProcessor((Msxml2_tlb::IXSLProcessorPtr*)&ppProcessor));
    return ppProcessor;
  }


  __property   Msxml2_tlb::IXMLDOMNodePtr stylesheet = {read = get_stylesheet, write = _set_stylesheet};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXSLProcessor
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2933BF92-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
interface IXSLProcessor  : public IDispatch
{
public:
  // [2] XML input tree to transform
  virtual HRESULT STDMETHODCALLTYPE set_input(TVariantInParam pVar/*[in]*/) = 0;
  // [2] XML input tree to transform
  virtual HRESULT STDMETHODCALLTYPE get_input(TVariant* pVar/*[out,retval]*/) = 0;
  // [3] template object used to create this processor object
  virtual HRESULT STDMETHODCALLTYPE get_ownerTemplate(Msxml2_tlb::IXSLTemplatePtr* ppTemplate/*[out,retval]*/) = 0;
  // [4] set XSL mode and it's namespace
  virtual HRESULT STDMETHODCALLTYPE setStartMode(BSTR mode/*[in]*/, 
                                                 BSTR namespaceURI/*[in,def,opt]*/) = 0;
  // [5] starting XSL mode
  virtual HRESULT STDMETHODCALLTYPE get_startMode(BSTR* mode/*[out,retval]*/) = 0;
  // [6] namespace of starting XSL mode
  virtual HRESULT STDMETHODCALLTYPE get_startModeURI(BSTR* namespaceURI/*[out,retval]*/) = 0;
  // [7] custom stream object for transform output
  virtual HRESULT STDMETHODCALLTYPE set_output(TVariantInParam pOutput/*[in]*/) = 0;
  // [7] custom stream object for transform output
  virtual HRESULT STDMETHODCALLTYPE get_output(TVariant* pOutput/*[out,retval]*/) = 0;
  // [8] start/resume the XSL transformation process
  virtual HRESULT STDMETHODCALLTYPE transform(TOLEBOOL* pDone/*[out,retval]*/) = 0;
  // [9] reset state of processor and abort current transform
  virtual HRESULT STDMETHODCALLTYPE reset(void) = 0;
  // [10] current state of the processor
  virtual HRESULT STDMETHODCALLTYPE get_readyState(long* pReadyState/*[out,retval]*/) = 0;
  // [11] set <xsl:param> values
  virtual HRESULT STDMETHODCALLTYPE addParameter(BSTR baseName/*[in]*/, 
                                                 TVariantInParam parameter/*[in]*/, 
                                                 BSTR namespaceURI/*[in,def,opt]*/) = 0;
  // [12] pass object to stylesheet
  virtual HRESULT STDMETHODCALLTYPE addObject(LPDISPATCH obj/*[in]*/, BSTR namespaceURI/*[in]*/) = 0;
  // [13] current stylesheet being used
  virtual HRESULT STDMETHODCALLTYPE get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_input(void)
  {
    TVariant pVar;
    OLECHECK(this->get_input((TVariant*)&pVar));
    return pVar;
  }

  Msxml2_tlb::IXSLTemplatePtr __fastcall get_ownerTemplate(void)
  {
    Msxml2_tlb::IXSLTemplatePtr ppTemplate;
    OLECHECK(this->get_ownerTemplate((Msxml2_tlb::IXSLTemplatePtr*)&ppTemplate));
    return ppTemplate;
  }

  BSTR __fastcall get_startMode(void)
  {
    BSTR mode = 0;
    OLECHECK(this->get_startMode((BSTR*)&mode));
    return mode;
  }

  BSTR __fastcall get_startModeURI(void)
  {
    BSTR namespaceURI = 0;
    OLECHECK(this->get_startModeURI((BSTR*)&namespaceURI));
    return namespaceURI;
  }

  TVariant __fastcall get_output(void)
  {
    TVariant pOutput;
    OLECHECK(this->get_output((TVariant*)&pOutput));
    return pOutput;
  }

  TOLEBOOL __fastcall transform(void)
  {
    TOLEBOOL pDone;
    OLECHECK(this->transform((TOLEBOOL*)&pDone));
    return pDone;
  }

  long __fastcall get_readyState(void)
  {
    long pReadyState;
    OLECHECK(this->get_readyState((long*)&pReadyState));
    return pReadyState;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_stylesheet(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr stylesheet;
    OLECHECK(this->get_stylesheet((Msxml2_tlb::IXMLDOMNodePtr*)&stylesheet));
    return stylesheet;
  }


  __property   Msxml2_tlb::IXSLTemplatePtr ownerTemplate = {read = get_ownerTemplate};
  __property   BSTR            startMode = {read = get_startMode};
  __property   BSTR            startModeURI = {read = get_startModeURI};
  __property   long            readyState = {read = get_readyState};
  __property   Msxml2_tlb::IXMLDOMNodePtr stylesheet = {read = get_stylesheet};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISAXXMLReader
// Indicateurs : (16) Hidden
// GUID        : {A4F96ED0-F829-476E-81C0-CDC7BD2A0802}
// *********************************************************************//
interface ISAXXMLReader  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE getFeature(unsigned_short* pwchName/*[in]*/, 
                                               TOLEBOOL* pvfValue/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putFeature(unsigned_short* pwchName/*[in]*/, 
                                               TOLEBOOL vfValue/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getProperty(unsigned_short* pwchName/*[in]*/, 
                                                TVariant* pvarValue/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putProperty(unsigned_short* pwchName/*[in]*/, 
                                                TVariantInParam varValue/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getEntityResolver(Msxml2_tlb::ISAXEntityResolverPtr* ppResolver/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putEntityResolver(Msxml2_tlb::ISAXEntityResolverPtr pResolver/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getContentHandler(Msxml2_tlb::ISAXContentHandlerPtr* ppHandler/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putContentHandler(Msxml2_tlb::ISAXContentHandlerPtr pHandler/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getDTDHandler(Msxml2_tlb::ISAXDTDHandlerPtr* ppHandler/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putDTDHandler(Msxml2_tlb::ISAXDTDHandlerPtr pHandler/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getErrorHandler(Msxml2_tlb::ISAXErrorHandlerPtr* ppHandler/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putErrorHandler(Msxml2_tlb::ISAXErrorHandlerPtr pHandler/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getBaseURL(unsigned_short** ppwchBaseUrl/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putBaseURL(unsigned_short* pwchBaseUrl/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getSecureBaseURL(unsigned_short** ppwchSecureBaseUrl/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putSecureBaseURL(unsigned_short* pwchSecureBaseUrl/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE parse(TVariantInParam varInput/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE parseURL(const wchar_t * pwchUrl/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXEntityResolver
// Indicateurs : (16) Hidden
// GUID        : {99BCA7BD-E8C4-4D5F-A0CF-6D907901FF07}
// *********************************************************************//
interface ISAXEntityResolver  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE resolveEntity(unsigned_short* pwchPublicId/*[in]*/,
                                                  unsigned_short* pwchSystemId/*[in]*/,
                                                  TVariant* pvarInput/*[out,retval]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXContentHandler
// Indicateurs : (16) Hidden
// GUID        : {1545CDFA-9E4E-4497-A8A4-2BF7D0112C44}
// *********************************************************************//
interface ISAXContentHandler  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE putDocumentLocator(Msxml2_tlb::ISAXLocator *pLocator/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE startDocument(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endDocument(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE startPrefixMapping(const wchar_t * pwchPrefix/*[in]*/,
                                                       int cchPrefix/*[in]*/, 
                                                       const wchar_t * pwchUri/*[in]*/,
                                                       int cchUri/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endPrefixMapping(const wchar_t * pwchPrefix/*[in]*/,
                                                     int cchPrefix/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE startElement(const wchar_t * pwchNamespaceUri/*[in]*/,
                                                 int cchNamespaceUri/*[in]*/, 
                                                 const wchar_t * pwchLocalName/*[in]*/,
                                                 int cchLocalName/*[in]*/, 
                                                 const wchar_t * pwchQName/*[in]*/,
                                                 int cchQName/*[in]*/, 
                                                 Msxml2_tlb::ISAXAttributes *pAttributes/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endElement(const wchar_t * pwchNamespaceUri/*[in]*/,
                                               int cchNamespaceUri/*[in]*/, 
                                               const wchar_t * pwchLocalName/*[in]*/,
                                               int cchLocalName/*[in]*/, 
                                               const wchar_t * pwchQName/*[in]*/,
                                               int cchQName/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE characters(const wchar_t * pwchChars/*[in]*/,
                                               int cchChars/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE ignorableWhitespace(const wchar_t * pwchChars/*[in]*/,
                                                        int cchChars/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE processingInstruction(const wchar_t * pwchTarget/*[in]*/,
                                                          int cchTarget/*[in]*/, 
                                                          const wchar_t * pwchData/*[in]*/,
                                                          int cchData/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE skippedEntity(const wchar_t * pwchName/*[in]*/,
                                                  int cchName/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXLocator
// Indicateurs : (16) Hidden
// GUID        : {9B7E472A-0DE4-4640-BFF3-84D38A051C31}
// *********************************************************************//
interface ISAXLocator  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE getColumnNumber(int* pnColumn/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getLineNumber(int* pnLine/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getPublicId(unsigned_short** ppwchPublicId/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getSystemId(unsigned_short** ppwchSystemId/*[out,retval]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXAttributes
// Indicateurs : (16) Hidden
// GUID        : {F078ABE1-45D2-4832-91EA-4466CE2F25C9}
// *********************************************************************//
interface ISAXAttributes  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE getLength(int* pnLength/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getURI(int nIndex/*[in]*/, const wchar_t ** ppwchUri/*[out]*/, 
                                           int* pcchUri/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getLocalName(int nIndex/*[in]*/, 
                                                 const wchar_t ** ppwchLocalName/*[out]*/,
                                                 int* pcchLocalName/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getQName(int nIndex/*[in]*/, 
                                             const wchar_t ** ppwchQName/*[out]*/,
                                             int* pcchQName/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getName(int nIndex/*[in]*/, unsigned_short** ppwchUri/*[out]*/, 
                                            int* pcchUri/*[out]*/, 
                                            const wchar_t ** ppwchLocalName/*[out]*/,
                                            int* pcchLocalName/*[out]*/, 
                                            const wchar_t ** ppwchQName/*[out]*/,
                                            int* pcchQName/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getIndexFromName(const wchar_t * pwchUri/*[in]*/,
                                                     int cchUri/*[in]*/, 
                                                     const wchar_t * pwchLocalName/*[in]*/,
                                                     int cchLocalName/*[in]*/, 
                                                     int* pnIndex/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getIndexFromQName(const wchar_t * pwchQName/*[in]*/,
                                                      int cchQName/*[in]*/, 
                                                      int* pnIndex/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getType(int nIndex/*[in]*/, const wchar_t ** ppwchType/*[out]*/,
                                            int* pcchType/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getTypeFromName(const wchar_t * pwchUri/*[in]*/,
                                                    int cchUri/*[in]*/, 
                                                    const wchar_t * pwchLocalName/*[in]*/,
                                                    int cchLocalName/*[in]*/, 
                                                    const wchar_t ** ppwchType/*[out]*/,
                                                    int* pcchType/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getTypeFromQName(const wchar_t * pwchQName/*[in]*/,
                                                     int cchQName/*[in]*/, 
                                                     const wchar_t ** ppwchType/*[out]*/,
                                                     int* pcchType/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getValue(int nIndex/*[in]*/, 
                                             const wchar_t ** ppwchValue/*[out]*/,
                                             int* pcchValue/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getValueFromName(const wchar_t * pwchUri/*[in]*/,
                                                     int cchUri/*[in]*/, 
                                                     const wchar_t * pwchLocalName/*[in]*/,
                                                     int cchLocalName/*[in]*/, 
                                                     const wchar_t ** ppwchValue/*[out]*/,
                                                     int* pcchValue/*[out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getValueFromQName(const wchar_t * pwchQName/*[in]*/,
                                                      int cchQName/*[in]*/, 
                                                      const wchar_t ** ppwchValue/*[out]*/, 
                                                      int* pcchValue/*[out]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXDTDHandler
// Indicateurs : (16) Hidden
// GUID        : {E15C1BAF-AFB3-4D60-8C36-19A8C45DEFED}
// *********************************************************************//
interface ISAXDTDHandler  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE notationDecl(unsigned_short* pwchName/*[in]*/, 
                                                 int cchName/*[in]*/, 
                                                 unsigned_short* pwchPublicId/*[in]*/, 
                                                 int cchPublicId/*[in]*/, 
                                                 unsigned_short* pwchSystemId/*[in]*/, 
                                                 int cchSystemId/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE unparsedEntityDecl(unsigned_short* pwchName/*[in]*/, 
                                                       int cchName/*[in]*/, 
                                                       unsigned_short* pwchPublicId/*[in]*/, 
                                                       int cchPublicId/*[in]*/, 
                                                       unsigned_short* pwchSystemId/*[in]*/, 
                                                       int cchSystemId/*[in]*/, 
                                                       unsigned_short* pwchNotationName/*[in]*/, 
                                                       int cchNotationName/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXErrorHandler
// Indicateurs : (16) Hidden
// GUID        : {A60511C4-CCF5-479E-98A3-DC8DC545B7D0}
// *********************************************************************//
interface ISAXErrorHandler  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE error(Msxml2_tlb::ISAXLocatorPtr pLocator/*[in]*/, 
                                          unsigned_short* pwchErrorMessage/*[in]*/, 
                                          HRESULT hrErrorCode/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE fatalError(Msxml2_tlb::ISAXLocatorPtr pLocator/*[in]*/, 
                                               unsigned_short* pwchErrorMessage/*[in]*/, 
                                               HRESULT hrErrorCode/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE ignorableWarning(Msxml2_tlb::ISAXLocatorPtr pLocator/*[in]*/, 
                                                     unsigned_short* pwchErrorMessage/*[in]*/, 
                                                     HRESULT hrErrorCode/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXXMLFilter
// Indicateurs : (16) Hidden
// GUID        : {70409222-CA09-4475-ACB8-40312FE8D145}
// *********************************************************************//
interface ISAXXMLFilter  : public Msxml2_tlb::ISAXXMLReader
{
public:
  virtual HRESULT STDMETHODCALLTYPE getParent(Msxml2_tlb::ISAXXMLReaderPtr* ppReader/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE putParent(Msxml2_tlb::ISAXXMLReaderPtr pReader/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXLexicalHandler
// Indicateurs : (16) Hidden
// GUID        : {7F85D5F5-47A8-4497-BDA5-84BA04819EA6}
// *********************************************************************//
interface ISAXLexicalHandler  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE startDTD(unsigned_short* pwchName/*[in]*/, int cchName/*[in]*/, 
                                             unsigned_short* pwchPublicId/*[in]*/, 
                                             int cchPublicId/*[in]*/, 
                                             unsigned_short* pwchSystemId/*[in]*/, 
                                             int cchSystemId/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endDTD(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE startEntity(unsigned_short* pwchName/*[in]*/, 
                                                int cchName/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endEntity(unsigned_short* pwchName/*[in]*/, int cchName/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE startCDATA(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE endCDATA(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE comment(unsigned_short* pwchChars/*[in]*/, int cchChars/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : ISAXDeclHandler
// Indicateurs : (16) Hidden
// GUID        : {862629AC-771A-47B2-8337-4E6843C1BE90}
// *********************************************************************//
interface ISAXDeclHandler  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE elementDecl(unsigned_short* pwchName/*[in]*/, 
                                                int cchName/*[in]*/, 
                                                unsigned_short* pwchModel/*[in]*/, 
                                                int cchModel/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE attributeDecl(unsigned_short* pwchElementName/*[in]*/, 
                                                  int cchElementName/*[in]*/, 
                                                  unsigned_short* pwchAttributeName/*[in]*/, 
                                                  int cchAttributeName/*[in]*/, 
                                                  unsigned_short* pwchType/*[in]*/, 
                                                  int cchType/*[in]*/, 
                                                  unsigned_short* pwchValueDefault/*[in]*/, 
                                                  int cchValueDefault/*[in]*/, 
                                                  unsigned_short* pwchValue/*[in]*/, 
                                                  int cchValue/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE internalEntityDecl(unsigned_short* pwchName/*[in]*/, 
                                                       int cchName/*[in]*/, 
                                                       unsigned_short* pwchValue/*[in]*/, 
                                                       int cchValue/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE externalEntityDecl(unsigned_short* pwchName/*[in]*/, 
                                                       int cchName/*[in]*/, 
                                                       unsigned_short* pwchPublicId/*[in]*/, 
                                                       int cchPublicId/*[in]*/, 
                                                       unsigned_short* pwchSystemId/*[in]*/, 
                                                       int cchSystemId/*[in]*/) = 0; // [-1]
};

// *********************************************************************//
// Interface   : IVBSAXXMLReader
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {8C033CAA-6CD6-4F73-B728-4531AF74945F}
// *********************************************************************//
interface IVBSAXXMLReader  : public IDispatch
{
public:
  // [1282] Look up the value of a feature.
  virtual HRESULT STDMETHODCALLTYPE getFeature(BSTR strName/*[in]*/, 
                                               TOLEBOOL* fValue/*[out,retval]*/) = 0;
  // [1283] Set the state of a feature.
  virtual HRESULT STDMETHODCALLTYPE putFeature(BSTR strName/*[in]*/, TOLEBOOL fValue/*[in]*/) = 0;
  // [1284] Look up the value of a property.
  virtual HRESULT STDMETHODCALLTYPE getProperty(BSTR strName/*[in]*/, 
                                                TVariant* varValue/*[out,retval]*/) = 0;
  // [1285] Set the value of a property.
  virtual HRESULT STDMETHODCALLTYPE putProperty(BSTR strName/*[in]*/, 
                                                TVariantInParam varValue/*[in]*/) = 0;
  // [1286] Allow an application to register an entity resolver or look up the current entity resolver.
  virtual HRESULT STDMETHODCALLTYPE get_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr* oResolver/*[out,retval]*/) = 0;
  // [1286] Allow an application to register an entity resolver or look up the current entity resolver.
  virtual HRESULT STDMETHODCALLTYPE _set_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr oResolver/*[in]*/) = 0;
  // [1287] Allow an application to register a content event handler or look up the current content event handler.
  virtual HRESULT STDMETHODCALLTYPE get_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr* oHandler/*[out,retval]*/) = 0;
  // [1287] Allow an application to register a content event handler or look up the current content event handler.
  virtual HRESULT STDMETHODCALLTYPE _set_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr oHandler/*[in]*/) = 0;
  // [1288] Allow an application to register a DTD event handler or look up the current DTD event handler.
  virtual HRESULT STDMETHODCALLTYPE get_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr* oHandler/*[out,retval]*/) = 0;
  // [1288] Allow an application to register a DTD event handler or look up the current DTD event handler.
  virtual HRESULT STDMETHODCALLTYPE _set_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler/*[in]*/) = 0;
  // [1289] Allow an application to register an error event handler or look up the current error event handler.
  virtual HRESULT STDMETHODCALLTYPE get_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr* oHandler/*[out,retval]*/) = 0;
  // [1289] Allow an application to register an error event handler or look up the current error event handler.
  virtual HRESULT STDMETHODCALLTYPE _set_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler/*[in]*/) = 0;
  // [1290] Set or get the base URL for the document.
  virtual HRESULT STDMETHODCALLTYPE get_baseURL(BSTR* strBaseURL/*[out,retval]*/) = 0;
  // [1290] Set or get the base URL for the document.
  virtual HRESULT STDMETHODCALLTYPE set_baseURL(BSTR strBaseURL/*[in]*/) = 0;
  // [1291] Set or get the secure base URL for the document.
  virtual HRESULT STDMETHODCALLTYPE get_secureBaseURL(BSTR* strSecureBaseURL/*[out,retval]*/) = 0;
  // [1291] Set or get the secure base URL for the document.
  virtual HRESULT STDMETHODCALLTYPE set_secureBaseURL(BSTR strSecureBaseURL/*[in]*/) = 0;
  // [1292] Parse an XML document.
  virtual HRESULT STDMETHODCALLTYPE parse(TVariantInParam varInput/*[in]*/) = 0;
  // [1293] Parse an XML document from a system identifier (URI).
  virtual HRESULT STDMETHODCALLTYPE parseURL(BSTR strURL/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall getFeature(BSTR strName/*[in]*/)
  {
    TOLEBOOL fValue;
    OLECHECK(this->getFeature(strName, (TOLEBOOL*)&fValue));
    return fValue;
  }

  TVariant __fastcall getProperty(BSTR strName/*[in]*/)
  {
    TVariant varValue;
    OLECHECK(this->getProperty(strName, (TVariant*)&varValue));
    return varValue;
  }

  Msxml2_tlb::IVBSAXEntityResolverPtr __fastcall get_entityResolver(void)
  {
    Msxml2_tlb::IVBSAXEntityResolverPtr oResolver;
    OLECHECK(this->get_entityResolver((Msxml2_tlb::IVBSAXEntityResolverPtr*)&oResolver));
    return oResolver;
  }

  Msxml2_tlb::IVBSAXContentHandlerPtr __fastcall get_contentHandler(void)
  {
    Msxml2_tlb::IVBSAXContentHandlerPtr oHandler;
    OLECHECK(this->get_contentHandler((Msxml2_tlb::IVBSAXContentHandlerPtr*)&oHandler));
    return oHandler;
  }

  Msxml2_tlb::IVBSAXDTDHandlerPtr __fastcall get_dtdHandler(void)
  {
    Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler;
    OLECHECK(this->get_dtdHandler((Msxml2_tlb::IVBSAXDTDHandlerPtr*)&oHandler));
    return oHandler;
  }

  Msxml2_tlb::IVBSAXErrorHandlerPtr __fastcall get_errorHandler(void)
  {
    Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler;
    OLECHECK(this->get_errorHandler((Msxml2_tlb::IVBSAXErrorHandlerPtr*)&oHandler));
    return oHandler;
  }

  BSTR __fastcall get_baseURL(void)
  {
    BSTR strBaseURL = 0;
    OLECHECK(this->get_baseURL((BSTR*)&strBaseURL));
    return strBaseURL;
  }

  BSTR __fastcall get_secureBaseURL(void)
  {
    BSTR strSecureBaseURL = 0;
    OLECHECK(this->get_secureBaseURL((BSTR*)&strSecureBaseURL));
    return strSecureBaseURL;
  }


  __property   Msxml2_tlb::IVBSAXEntityResolverPtr entityResolver = {read = get_entityResolver, write = _set_entityResolver};
  __property   Msxml2_tlb::IVBSAXContentHandlerPtr contentHandler = {read = get_contentHandler, write = _set_contentHandler};
  __property   Msxml2_tlb::IVBSAXDTDHandlerPtr dtdHandler = {read = get_dtdHandler, write = _set_dtdHandler};
  __property   Msxml2_tlb::IVBSAXErrorHandlerPtr errorHandler = {read = get_errorHandler, write = _set_errorHandler};
  __property   BSTR            baseURL = {read = get_baseURL, write = set_baseURL};
  __property   BSTR            secureBaseURL = {read = get_secureBaseURL, write = set_secureBaseURL};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXEntityResolver
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}
// *********************************************************************//
interface IVBSAXEntityResolver  : public IDispatch
{
public:
  // [1319] Allow the application to resolve external entities.
  virtual HRESULT STDMETHODCALLTYPE resolveEntity(BSTR* strPublicId/*[in,out]*/, 
                                                  BSTR* strSystemId/*[in,out]*/, 
                                                  TVariant* varInput/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall resolveEntity(BSTR* strPublicId/*[in,out]*/, BSTR* strSystemId/*[in,out]*/)
  {
    TVariant varInput;
    OLECHECK(this->resolveEntity(strPublicId, strSystemId, (TVariant*)&varInput));
    return varInput;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXContentHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}
// *********************************************************************//
interface IVBSAXContentHandler  : public IDispatch
{
public:
  // [1322] Receive an object for locating the origin of SAX document events.
  virtual HRESULT STDMETHODCALLTYPE _set_documentLocator(Msxml2_tlb::IVBSAXLocatorPtr Param1/*[in]*/) = 0;
  // [1323] Receive notification of the beginning of a document.
  virtual HRESULT STDMETHODCALLTYPE startDocument(void) = 0;
  // [1324] Receive notification of the end of a document.
  virtual HRESULT STDMETHODCALLTYPE endDocument(void) = 0;
  // [1325] Begin the scope of a prefix-URI Namespace mapping.
  virtual HRESULT STDMETHODCALLTYPE startPrefixMapping(BSTR* strPrefix/*[in,out]*/, 
                                                       BSTR* strURI/*[in,out]*/) = 0;
  // [1326] End the scope of a prefix-URI mapping.
  virtual HRESULT STDMETHODCALLTYPE endPrefixMapping(BSTR* strPrefix/*[in,out]*/) = 0;
  // [1327] Receive notification of the beginning of an element.
  virtual HRESULT STDMETHODCALLTYPE startElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                                 BSTR* strLocalName/*[in,out]*/, 
                                                 BSTR* strQName/*[in,out]*/, 
                                                 Msxml2_tlb::IVBSAXAttributesPtr oAttributes/*[in]*/) = 0;
  // [1328] Receive notification of the end of an element.
  virtual HRESULT STDMETHODCALLTYPE endElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                               BSTR* strLocalName/*[in,out]*/, 
                                               BSTR* strQName/*[in,out]*/) = 0;
  // [1329] Receive notification of character data.
  virtual HRESULT STDMETHODCALLTYPE characters(BSTR* strChars/*[in,out]*/) = 0;
  // [1330] Receive notification of ignorable whitespace in element content.
  virtual HRESULT STDMETHODCALLTYPE ignorableWhitespace(BSTR* strChars/*[in,out]*/) = 0;
  // [1331] Receive notification of a processing instruction.
  virtual HRESULT STDMETHODCALLTYPE processingInstruction(BSTR* strTarget/*[in,out]*/, 
                                                          BSTR* strData/*[in,out]*/) = 0;
  // [1332] Receive notification of a skipped entity.
  virtual HRESULT STDMETHODCALLTYPE skippedEntity(BSTR* strName/*[in,out]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)


  __property   Msxml2_tlb::IVBSAXLocatorPtr documentLocator = {write = _set_documentLocator};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXLocator
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}
// *********************************************************************//
interface IVBSAXLocator  : public IDispatch
{
public:
  // [1313] Get the column number where the current document event ends.
  virtual HRESULT STDMETHODCALLTYPE get_columnNumber(int* nColumn/*[out,retval]*/) = 0;
  // [1314] Get the line number where the current document event ends.
  virtual HRESULT STDMETHODCALLTYPE get_lineNumber(int* nLine/*[out,retval]*/) = 0;
  // [1315] Get the public identifier for the current document event.
  virtual HRESULT STDMETHODCALLTYPE get_publicId(BSTR* strPublicId/*[out,retval]*/) = 0;
  // [1316] Get the system identifier for the current document event.
  virtual HRESULT STDMETHODCALLTYPE get_systemId(BSTR* strSystemId/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  int __fastcall get_columnNumber(void)
  {
    int nColumn;
    OLECHECK(this->get_columnNumber((int*)&nColumn));
    return nColumn;
  }

  int __fastcall get_lineNumber(void)
  {
    int nLine;
    OLECHECK(this->get_lineNumber((int*)&nLine));
    return nLine;
  }

  BSTR __fastcall get_publicId(void)
  {
    BSTR strPublicId = 0;
    OLECHECK(this->get_publicId((BSTR*)&strPublicId));
    return strPublicId;
  }

  BSTR __fastcall get_systemId(void)
  {
    BSTR strSystemId = 0;
    OLECHECK(this->get_systemId((BSTR*)&strSystemId));
    return strSystemId;
  }


  __property   int             columnNumber = {read = get_columnNumber};
  __property   int             lineNumber = {read = get_lineNumber};
  __property   BSTR            publicId = {read = get_publicId};
  __property   BSTR            systemId = {read = get_systemId};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXAttributes
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}
// *********************************************************************//
interface IVBSAXAttributes  : public IDispatch
{
public:
  // [1344] Get the number of attributes in the list.
  virtual HRESULT STDMETHODCALLTYPE get_length(int* nLength/*[out,retval]*/) = 0;
  // [1345] Look up an attribute's Namespace URI by index.
  virtual HRESULT STDMETHODCALLTYPE getURI(int nIndex/*[in]*/, BSTR* strURI/*[out,retval]*/) = 0;
  // [1346] Look up an attribute's local name by index.
  virtual HRESULT STDMETHODCALLTYPE getLocalName(int nIndex/*[in]*/, 
                                                 BSTR* strLocalName/*[out,retval]*/) = 0;
  // [1347] Look up an attribute's XML 1.0 qualified name by index.
  virtual HRESULT STDMETHODCALLTYPE getQName(int nIndex/*[in]*/, BSTR* strQName/*[out,retval]*/) = 0;
  // [1348] Look up the index of an attribute by Namespace name.
  virtual HRESULT STDMETHODCALLTYPE getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                                     int* nIndex/*[out,retval]*/) = 0;
  // [1349] Look up the index of an attribute by XML 1.0 qualified name.
  virtual HRESULT STDMETHODCALLTYPE getIndexFromQName(BSTR strQName/*[in]*/, 
                                                      int* nIndex/*[out,retval]*/) = 0;
  // [1350] Look up an attribute's type by index.
  virtual HRESULT STDMETHODCALLTYPE getType(int nIndex/*[in]*/, BSTR* strType/*[out,retval]*/) = 0;
  // [1351] Look up an attribute's type by Namespace name.
  virtual HRESULT STDMETHODCALLTYPE getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                                    BSTR* strType/*[out,retval]*/) = 0;
  // [1352] Look up an attribute's type by XML 1.0 qualified name.
  virtual HRESULT STDMETHODCALLTYPE getTypeFromQName(BSTR strQName/*[in]*/, 
                                                     BSTR* strType/*[out,retval]*/) = 0;
  // [1353] Look up an attribute's value by index.
  virtual HRESULT STDMETHODCALLTYPE getValue(int nIndex/*[in]*/, BSTR* strValue/*[out,retval]*/) = 0;
  // [1354] Look up an attribute's value by Namespace name.
  virtual HRESULT STDMETHODCALLTYPE getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                                     BSTR* strValue/*[out,retval]*/) = 0;
  // [1355] Look up an attribute's value by XML 1.0 qualified name.
  virtual HRESULT STDMETHODCALLTYPE getValueFromQName(BSTR strQName/*[in]*/, 
                                                      BSTR* strValue/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  int __fastcall get_length(void)
  {
    int nLength;
    OLECHECK(this->get_length((int*)&nLength));
    return nLength;
  }

  BSTR __fastcall getURI(int nIndex/*[in]*/)
  {
    BSTR strURI = 0;
    OLECHECK(this->getURI(nIndex, (BSTR*)&strURI));
    return strURI;
  }

  BSTR __fastcall getLocalName(int nIndex/*[in]*/)
  {
    BSTR strLocalName = 0;
    OLECHECK(this->getLocalName(nIndex, (BSTR*)&strLocalName));
    return strLocalName;
  }

  BSTR __fastcall getQName(int nIndex/*[in]*/)
  {
    BSTR strQName = 0;
    OLECHECK(this->getQName(nIndex, (BSTR*)&strQName));
    return strQName;
  }

  int __fastcall getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
  {
    int nIndex;
    OLECHECK(this->getIndexFromName(strURI, strLocalName, (int*)&nIndex));
    return nIndex;
  }

  int __fastcall getIndexFromQName(BSTR strQName/*[in]*/)
  {
    int nIndex;
    OLECHECK(this->getIndexFromQName(strQName, (int*)&nIndex));
    return nIndex;
  }

  BSTR __fastcall getType(int nIndex/*[in]*/)
  {
    BSTR strType = 0;
    OLECHECK(this->getType(nIndex, (BSTR*)&strType));
    return strType;
  }

  BSTR __fastcall getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
  {
    BSTR strType = 0;
    OLECHECK(this->getTypeFromName(strURI, strLocalName, (BSTR*)&strType));
    return strType;
  }

  BSTR __fastcall getTypeFromQName(BSTR strQName/*[in]*/)
  {
    BSTR strType = 0;
    OLECHECK(this->getTypeFromQName(strQName, (BSTR*)&strType));
    return strType;
  }

  BSTR __fastcall getValue(int nIndex/*[in]*/)
  {
    BSTR strValue = 0;
    OLECHECK(this->getValue(nIndex, (BSTR*)&strValue));
    return strValue;
  }

  BSTR __fastcall getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
  {
    BSTR strValue = 0;
    OLECHECK(this->getValueFromName(strURI, strLocalName, (BSTR*)&strValue));
    return strValue;
  }

  BSTR __fastcall getValueFromQName(BSTR strQName/*[in]*/)
  {
    BSTR strValue = 0;
    OLECHECK(this->getValueFromQName(strQName, (BSTR*)&strValue));
    return strValue;
  }


  __property   int             length = {read = get_length};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXDTDHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {24FB3297-302D-4620-BA39-3A732D850558}
// *********************************************************************//
interface IVBSAXDTDHandler  : public IDispatch
{
public:
  // [1335] Receive notification of a notation declaration event.
  virtual HRESULT STDMETHODCALLTYPE notationDecl(BSTR* strName/*[in,out]*/, 
                                                 BSTR* strPublicId/*[in,out]*/, 
                                                 BSTR* strSystemId/*[in,out]*/) = 0;
  // [1336] Receive notification of an unparsed entity declaration event.
  virtual HRESULT STDMETHODCALLTYPE unparsedEntityDecl(BSTR* strName/*[in,out]*/, 
                                                       BSTR* strPublicId/*[in,out]*/, 
                                                       BSTR* strSystemId/*[in,out]*/, 
                                                       BSTR* strNotationName/*[in,out]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXErrorHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {D963D3FE-173C-4862-9095-B92F66995F52}
// *********************************************************************//
interface IVBSAXErrorHandler  : public IDispatch
{
public:
  // [1339] Receive notification of a recoverable error.
  virtual HRESULT STDMETHODCALLTYPE error(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                          BSTR* strErrorMessage/*[in,out]*/, long nErrorCode/*[in]*/) = 0;
  // [1340] Receive notification of a non-recoverable error.
  virtual HRESULT STDMETHODCALLTYPE fatalError(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                               BSTR* strErrorMessage/*[in,out]*/, 
                                               long nErrorCode/*[in]*/) = 0;
  // [1341] Receive notification of an ignorable warning.
  virtual HRESULT STDMETHODCALLTYPE ignorableWarning(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                                     BSTR* strErrorMessage/*[in,out]*/, 
                                                     long nErrorCode/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXXMLFilter
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {1299EB1B-5B88-433E-82DE-82CA75AD4E04}
// *********************************************************************//
interface IVBSAXXMLFilter  : public IDispatch
{
public:
  // [1309] Set or get the parent reader
  virtual HRESULT STDMETHODCALLTYPE get_parent(Msxml2_tlb::IVBSAXXMLReaderPtr* oReader/*[out,retval]*/) = 0;
  // [1309] Set or get the parent reader
  virtual HRESULT STDMETHODCALLTYPE _set_parent(Msxml2_tlb::IVBSAXXMLReaderPtr oReader/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IVBSAXXMLReaderPtr __fastcall get_parent(void)
  {
    Msxml2_tlb::IVBSAXXMLReaderPtr oReader;
    OLECHECK(this->get_parent((Msxml2_tlb::IVBSAXXMLReaderPtr*)&oReader));
    return oReader;
  }


  __property   Msxml2_tlb::IVBSAXXMLReaderPtr parent = {read = get_parent, write = _set_parent};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXLexicalHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {032AAC35-8C0E-4D9D-979F-E3B702935576}
// *********************************************************************//
interface IVBSAXLexicalHandler  : public IDispatch
{
public:
  // [1358] Report the start of DTD declarations, if any.
  virtual HRESULT STDMETHODCALLTYPE startDTD(BSTR* strName/*[in,out]*/, 
                                             BSTR* strPublicId/*[in,out]*/, 
                                             BSTR* strSystemId/*[in,out]*/) = 0;
  // [1359] Report the end of DTD declarations.
  virtual HRESULT STDMETHODCALLTYPE endDTD(void) = 0;
  // [1360] Report the beginning of some internal and external XML entities.
  virtual HRESULT STDMETHODCALLTYPE startEntity(BSTR* strName/*[in,out]*/) = 0;
  // [1361] Report the end of an entity.
  virtual HRESULT STDMETHODCALLTYPE endEntity(BSTR* strName/*[in,out]*/) = 0;
  // [1362] Report the start of a CDATA section.
  virtual HRESULT STDMETHODCALLTYPE startCDATA(void) = 0;
  // [1363] Report the end of a CDATA section.
  virtual HRESULT STDMETHODCALLTYPE endCDATA(void) = 0;
  // [1364] Report an XML comment anywhere in the document.
  virtual HRESULT STDMETHODCALLTYPE comment(BSTR* strChars/*[in,out]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBSAXDeclHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {E8917260-7579-4BE1-B5DD-7AFBFA6F077B}
// *********************************************************************//
interface IVBSAXDeclHandler  : public IDispatch
{
public:
  // [1367] Report an element type declaration.
  virtual HRESULT STDMETHODCALLTYPE elementDecl(BSTR* strName/*[in,out]*/, 
                                                BSTR* strModel/*[in,out]*/) = 0;
  // [1368] Report an attribute type declaration.
  virtual HRESULT STDMETHODCALLTYPE attributeDecl(BSTR* strElementName/*[in,out]*/, 
                                                  BSTR* strAttributeName/*[in,out]*/, 
                                                  BSTR* strType/*[in,out]*/, 
                                                  BSTR* strValueDefault/*[in,out]*/, 
                                                  BSTR* strValue/*[in,out]*/) = 0;
  // [1369] Report an internal entity declaration.
  virtual HRESULT STDMETHODCALLTYPE internalEntityDecl(BSTR* strName/*[in,out]*/, 
                                                       BSTR* strValue/*[in,out]*/) = 0;
  // [1370] Report a parsed external entity declaration.
  virtual HRESULT STDMETHODCALLTYPE externalEntityDecl(BSTR* strName/*[in,out]*/, 
                                                       BSTR* strPublicId/*[in,out]*/, 
                                                       BSTR* strSystemId/*[in,out]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXWriter
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}
// *********************************************************************//
interface IMXWriter  : public IDispatch
{
public:
  // [1385] Set or get the output.
  virtual HRESULT STDMETHODCALLTYPE set_output(TVariantInParam varDestination/*[in]*/) = 0;
  // [1385] Set or get the output.
  virtual HRESULT STDMETHODCALLTYPE get_output(TVariant* varDestination/*[out,retval]*/) = 0;
  // [1387] Set or get the output encoding.
  virtual HRESULT STDMETHODCALLTYPE set_encoding(BSTR strEncoding/*[in]*/) = 0;
  // [1387] Set or get the output encoding.
  virtual HRESULT STDMETHODCALLTYPE get_encoding(BSTR* strEncoding/*[out,retval]*/) = 0;
  // [1388] Determine whether or not to write the byte order mark
  virtual HRESULT STDMETHODCALLTYPE set_byteOrderMark(TOLEBOOL fWriteByteOrderMark/*[in]*/) = 0;
  // [1388] Determine whether or not to write the byte order mark
  virtual HRESULT STDMETHODCALLTYPE get_byteOrderMark(TOLEBOOL* fWriteByteOrderMark/*[out,retval]*/) = 0;
  // [1389] Enable or disable auto indent mode.
  virtual HRESULT STDMETHODCALLTYPE set_indent(TOLEBOOL fIndentMode/*[in]*/) = 0;
  // [1389] Enable or disable auto indent mode.
  virtual HRESULT STDMETHODCALLTYPE get_indent(TOLEBOOL* fIndentMode/*[out,retval]*/) = 0;
  // [1390] Set or get the standalone document declaration.
  virtual HRESULT STDMETHODCALLTYPE set_standalone(TOLEBOOL fValue/*[in]*/) = 0;
  // [1390] Set or get the standalone document declaration.
  virtual HRESULT STDMETHODCALLTYPE get_standalone(TOLEBOOL* fValue/*[out,retval]*/) = 0;
  // [1391] Determine whether or not to omit the XML declaration.
  virtual HRESULT STDMETHODCALLTYPE set_omitXMLDeclaration(TOLEBOOL fValue/*[in]*/) = 0;
  // [1391] Determine whether or not to omit the XML declaration.
  virtual HRESULT STDMETHODCALLTYPE get_omitXMLDeclaration(TOLEBOOL* fValue/*[out,retval]*/) = 0;
  // [1392] Set or get the xml version info.
  virtual HRESULT STDMETHODCALLTYPE set_version(BSTR strVersion/*[in]*/) = 0;
  // [1392] Set or get the xml version info.
  virtual HRESULT STDMETHODCALLTYPE get_version(BSTR* strVersion/*[out,retval]*/) = 0;
  // [1393] When enabled, the writer no longer escapes out its input when writing it out.
  virtual HRESULT STDMETHODCALLTYPE set_disableOutputEscaping(TOLEBOOL fValue/*[in]*/) = 0;
  // [1393] When enabled, the writer no longer escapes out its input when writing it out.
  virtual HRESULT STDMETHODCALLTYPE get_disableOutputEscaping(TOLEBOOL* fValue/*[out,retval]*/) = 0;
  // [1394] Flushes all writer buffers forcing the writer to write to the underlying output object
  virtual HRESULT STDMETHODCALLTYPE flush(void) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_output(void)
  {
    TVariant varDestination;
    OLECHECK(this->get_output((TVariant*)&varDestination));
    return varDestination;
  }

  BSTR __fastcall get_encoding(void)
  {
    BSTR strEncoding = 0;
    OLECHECK(this->get_encoding((BSTR*)&strEncoding));
    return strEncoding;
  }

  TOLEBOOL __fastcall get_byteOrderMark(void)
  {
    TOLEBOOL fWriteByteOrderMark;
    OLECHECK(this->get_byteOrderMark((TOLEBOOL*)&fWriteByteOrderMark));
    return fWriteByteOrderMark;
  }

  TOLEBOOL __fastcall get_indent(void)
  {
    TOLEBOOL fIndentMode;
    OLECHECK(this->get_indent((TOLEBOOL*)&fIndentMode));
    return fIndentMode;
  }

  TOLEBOOL __fastcall get_standalone(void)
  {
    TOLEBOOL fValue;
    OLECHECK(this->get_standalone((TOLEBOOL*)&fValue));
    return fValue;
  }

  TOLEBOOL __fastcall get_omitXMLDeclaration(void)
  {
    TOLEBOOL fValue;
    OLECHECK(this->get_omitXMLDeclaration((TOLEBOOL*)&fValue));
    return fValue;
  }

  BSTR __fastcall get_version(void)
  {
    BSTR strVersion = 0;
    OLECHECK(this->get_version((BSTR*)&strVersion));
    return strVersion;
  }

  TOLEBOOL __fastcall get_disableOutputEscaping(void)
  {
    TOLEBOOL fValue;
    OLECHECK(this->get_disableOutputEscaping((TOLEBOOL*)&fValue));
    return fValue;
  }


  __property   BSTR            encoding = {read = get_encoding, write = set_encoding};
  __property   TOLEBOOL        byteOrderMark = {read = get_byteOrderMark, write = set_byteOrderMark};
  __property   TOLEBOOL        indent = {read = get_indent, write = set_indent};
  __property   TOLEBOOL        standalone = {read = get_standalone, write = set_standalone};
  __property   TOLEBOOL        omitXMLDeclaration = {read = get_omitXMLDeclaration, write = set_omitXMLDeclaration};
  __property   BSTR            version = {read = get_version, write = set_version};
  __property   TOLEBOOL        disableOutputEscaping = {read = get_disableOutputEscaping, write = set_disableOutputEscaping};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXAttributes
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}
// *********************************************************************//
interface IMXAttributes  : public IDispatch
{
public:
  // [1373] Add an attribute to the end of the list.
  virtual HRESULT STDMETHODCALLTYPE addAttribute(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                                 BSTR strQName/*[in]*/, BSTR strType/*[in]*/, 
                                                 BSTR strValue/*[in]*/) = 0;
  // [1383] Add an attribute, whose value is equal to the indexed attribute in the input attributes object, to the end of the list.
  virtual HRESULT STDMETHODCALLTYPE addAttributeFromIndex(TVariantInParam varAtts/*[in]*/, 
                                                          int nIndex/*[in]*/) = 0;
  // [1374] Clear the attribute list for reuse.
  virtual HRESULT STDMETHODCALLTYPE clear(void) = 0;
  // [1375] Remove an attribute from the list.
  virtual HRESULT STDMETHODCALLTYPE removeAttribute(int nIndex/*[in]*/) = 0;
  // [1376] Set an attribute in the list.
  virtual HRESULT STDMETHODCALLTYPE setAttribute(int nIndex/*[in]*/, BSTR strURI/*[in]*/, 
                                                 BSTR strLocalName/*[in]*/, BSTR strQName/*[in]*/, 
                                                 BSTR strType/*[in]*/, BSTR strValue/*[in]*/) = 0;
  // [1377] Copy an entire Attributes object.
  virtual HRESULT STDMETHODCALLTYPE setAttributes(TVariantInParam varAtts/*[in]*/) = 0;
  // [1378] Set the local name of a specific attribute.
  virtual HRESULT STDMETHODCALLTYPE setLocalName(int nIndex/*[in]*/, BSTR strLocalName/*[in]*/) = 0;
  // [1379] Set the qualified name of a specific attribute.
  virtual HRESULT STDMETHODCALLTYPE setQName(int nIndex/*[in]*/, BSTR strQName/*[in]*/) = 0;
  // [1380] Set the type of a specific attribute.
  virtual HRESULT STDMETHODCALLTYPE setType(int nIndex/*[in]*/, BSTR strType/*[in]*/) = 0;
  // [1381] Set the Namespace URI of a specific attribute.
  virtual HRESULT STDMETHODCALLTYPE setURI(int nIndex/*[in]*/, BSTR strURI/*[in]*/) = 0;
  // [1382] Set the value of a specific attribute.
  virtual HRESULT STDMETHODCALLTYPE setValue(int nIndex/*[in]*/, BSTR strValue/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXReaderControl
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {808F4E35-8D5A-4FBE-8466-33A41279ED30}
// *********************************************************************//
interface IMXReaderControl  : public IDispatch
{
public:
  // [1398] Abort the reader
  virtual HRESULT STDMETHODCALLTYPE abort(void) = 0;
  // [1399] Resume the reader
  virtual HRESULT STDMETHODCALLTYPE resume(void) = 0;
  // [1400] Suspend the reader
  virtual HRESULT STDMETHODCALLTYPE suspend(void) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXSchemaDeclHandler
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}
// *********************************************************************//
interface IMXSchemaDeclHandler  : public IDispatch
{
public:
  // [1403] Access schema element declaration
  virtual HRESULT STDMETHODCALLTYPE schemaElementDecl(Msxml2_tlb::ISchemaElementPtr oSchemaElement/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaItem
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaItem  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_name(BSTR* name/*[out,retval]*/) = 0; // [1457]
  virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/) = 0; // [1459]
  virtual HRESULT STDMETHODCALLTYPE get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/) = 0; // [1467]
  virtual HRESULT STDMETHODCALLTYPE get_id(BSTR* id/*[out,retval]*/) = 0; // [1440]
  virtual HRESULT STDMETHODCALLTYPE get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/) = 0; // [1446]
  virtual HRESULT STDMETHODCALLTYPE get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/) = 0; // [1478]
  virtual HRESULT STDMETHODCALLTYPE writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                                    TOLEBOOL* isWritten/*[out,retval]*/) = 0; // [1483]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_name(void)
  {
    BSTR name = 0;
    OLECHECK(this->get_name((BSTR*)&name));
    return name;
  }

  BSTR __fastcall get_namespaceURI(void)
  {
    BSTR namespaceURI = 0;
    OLECHECK(this->get_namespaceURI((BSTR*)&namespaceURI));
    return namespaceURI;
  }

  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void)
  {
    Msxml2_tlb::ISchemaPtr schema;
    OLECHECK(this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema));
    return schema;
  }

  BSTR __fastcall get_id(void)
  {
    BSTR id = 0;
    OLECHECK(this->get_id((BSTR*)&id));
    return id;
  }

  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void)
  {
    Msxml2_tlb::SOMITEMTYPE itemType;
    OLECHECK(this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType));
    return itemType;
  }

  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void)
  {
    Msxml2_tlb::IVBSAXAttributesPtr attributes;
    OLECHECK(this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes));
    return attributes;
  }

  TOLEBOOL __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
  {
    TOLEBOOL isWritten;
    OLECHECK(this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten));
    return isWritten;
  }


  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaParticle
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaParticle  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_minOccurs(TVariant* minOccurs/*[out,retval]*/) = 0; // [1455]
  virtual HRESULT STDMETHODCALLTYPE get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/) = 0; // [1451]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TVariant __fastcall get_minOccurs(void)
  {
    TVariant minOccurs;
    OLECHECK(this->get_minOccurs((TVariant*)&minOccurs));
    return minOccurs;
  }

  TVariant __fastcall get_maxOccurs(void)
  {
    TVariant maxOccurs;
    OLECHECK(this->get_maxOccurs((TVariant*)&maxOccurs));
    return maxOccurs;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaElement
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaElement  : public Msxml2_tlb::ISchemaParticle
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/) = 0; // [1476]
  virtual HRESULT STDMETHODCALLTYPE get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/) = 0; // [1469]
  virtual HRESULT STDMETHODCALLTYPE get_defaultValue(BSTR* defaultValue/*[out,retval]*/) = 0; // [1431]
  virtual HRESULT STDMETHODCALLTYPE get_fixedValue(BSTR* fixedValue/*[out,retval]*/) = 0; // [1438]
  virtual HRESULT STDMETHODCALLTYPE get_isNillable(TOLEBOOL* nillable/*[out,retval]*/) = 0; // [1443]
  virtual HRESULT STDMETHODCALLTYPE get_identityConstraints(Msxml2_tlb::ISchemaItemCollectionPtr* constraints/*[out,retval]*/) = 0; // [1441]
  virtual HRESULT STDMETHODCALLTYPE get_substitutionGroup(Msxml2_tlb::ISchemaElementPtr* element/*[out,retval]*/) = 0; // [1471]
  virtual HRESULT STDMETHODCALLTYPE get_substitutionGroupExclusions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* exclusions/*[out,retval]*/) = 0; // [1472]
  virtual HRESULT STDMETHODCALLTYPE get_disallowedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* disallowed/*[out,retval]*/) = 0; // [1433]
  virtual HRESULT STDMETHODCALLTYPE get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/) = 0; // [1442]
  virtual HRESULT STDMETHODCALLTYPE get_isReference(TOLEBOOL* reference/*[out,retval]*/) = 0; // [1444]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaTypePtr __fastcall get_type(void)
  {
    Msxml2_tlb::ISchemaTypePtr type;
    OLECHECK(this->get_type((Msxml2_tlb::ISchemaTypePtr*)&type));
    return type;
  }

  Msxml2_tlb::ISchemaComplexTypePtr __fastcall get_scope(void)
  {
    Msxml2_tlb::ISchemaComplexTypePtr scope;
    OLECHECK(this->get_scope((Msxml2_tlb::ISchemaComplexTypePtr*)&scope));
    return scope;
  }

  BSTR __fastcall get_defaultValue(void)
  {
    BSTR defaultValue = 0;
    OLECHECK(this->get_defaultValue((BSTR*)&defaultValue));
    return defaultValue;
  }

  BSTR __fastcall get_fixedValue(void)
  {
    BSTR fixedValue = 0;
    OLECHECK(this->get_fixedValue((BSTR*)&fixedValue));
    return fixedValue;
  }

  TOLEBOOL __fastcall get_isNillable(void)
  {
    TOLEBOOL nillable;
    OLECHECK(this->get_isNillable((TOLEBOOL*)&nillable));
    return nillable;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_identityConstraints(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr constraints;
    OLECHECK(this->get_identityConstraints((Msxml2_tlb::ISchemaItemCollectionPtr*)&constraints));
    return constraints;
  }

  Msxml2_tlb::ISchemaElementPtr __fastcall get_substitutionGroup(void)
  {
    Msxml2_tlb::ISchemaElementPtr element;
    OLECHECK(this->get_substitutionGroup((Msxml2_tlb::ISchemaElementPtr*)&element));
    return element;
  }

  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_substitutionGroupExclusions(void)
  {
    Msxml2_tlb::SCHEMADERIVATIONMETHOD exclusions;
    OLECHECK(this->get_substitutionGroupExclusions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&exclusions));
    return exclusions;
  }

  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_disallowedSubstitutions(void)
  {
    Msxml2_tlb::SCHEMADERIVATIONMETHOD disallowed;
    OLECHECK(this->get_disallowedSubstitutions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&disallowed));
    return disallowed;
  }

  TOLEBOOL __fastcall get_isAbstract(void)
  {
    TOLEBOOL abstract;
    OLECHECK(this->get_isAbstract((TOLEBOOL*)&abstract));
    return abstract;
  }

  TOLEBOOL __fastcall get_isReference(void)
  {
    TOLEBOOL reference;
    OLECHECK(this->get_isReference((TOLEBOOL*)&reference));
    return reference;
  }


  __property   Msxml2_tlb::ISchemaTypePtr type = {read = get_type};
  __property   Msxml2_tlb::ISchemaComplexTypePtr scope = {read = get_scope};
  __property   BSTR            defaultValue = {read = get_defaultValue};
  __property   BSTR            fixedValue = {read = get_fixedValue};
  __property   TOLEBOOL        isNillable = {read = get_isNillable};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr identityConstraints = {read = get_identityConstraints};
  __property   Msxml2_tlb::ISchemaElementPtr substitutionGroup = {read = get_substitutionGroup};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD substitutionGroupExclusions = {read = get_substitutionGroupExclusions};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD disallowedSubstitutions = {read = get_disallowedSubstitutions};
  __property   TOLEBOOL        isAbstract = {read = get_isAbstract};
  __property   TOLEBOOL        isReference = {read = get_isReference};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchema
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchema  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_targetNamespace(BSTR* targetNamespace/*[out,retval]*/) = 0; // [1474]
  virtual HRESULT STDMETHODCALLTYPE get_version(BSTR* version/*[out,retval]*/) = 0; // [1481]
  virtual HRESULT STDMETHODCALLTYPE get_types(Msxml2_tlb::ISchemaItemCollectionPtr* types/*[out,retval]*/) = 0; // [1477]
  virtual HRESULT STDMETHODCALLTYPE get_elements(Msxml2_tlb::ISchemaItemCollectionPtr* elements/*[out,retval]*/) = 0; // [1434]
  virtual HRESULT STDMETHODCALLTYPE get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/) = 0; // [1427]
  virtual HRESULT STDMETHODCALLTYPE get_attributeGroups(Msxml2_tlb::ISchemaItemCollectionPtr* attributeGroups/*[out,retval]*/) = 0; // [1426]
  virtual HRESULT STDMETHODCALLTYPE get_modelGroups(Msxml2_tlb::ISchemaItemCollectionPtr* modelGroups/*[out,retval]*/) = 0; // [1456]
  virtual HRESULT STDMETHODCALLTYPE get_notations(Msxml2_tlb::ISchemaItemCollectionPtr* notations/*[out,retval]*/) = 0; // [1460]
  virtual HRESULT STDMETHODCALLTYPE get_schemaLocations(Msxml2_tlb::ISchemaStringCollectionPtr* schemaLocations/*[out,retval]*/) = 0; // [1468]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_targetNamespace(void)
  {
    BSTR targetNamespace = 0;
    OLECHECK(this->get_targetNamespace((BSTR*)&targetNamespace));
    return targetNamespace;
  }

  BSTR __fastcall get_version(void)
  {
    BSTR version = 0;
    OLECHECK(this->get_version((BSTR*)&version));
    return version;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_types(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr types;
    OLECHECK(this->get_types((Msxml2_tlb::ISchemaItemCollectionPtr*)&types));
    return types;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_elements(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr elements;
    OLECHECK(this->get_elements((Msxml2_tlb::ISchemaItemCollectionPtr*)&elements));
    return elements;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr attributes;
    OLECHECK(this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes));
    return attributes;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributeGroups(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr attributeGroups;
    OLECHECK(this->get_attributeGroups((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributeGroups));
    return attributeGroups;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_modelGroups(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr modelGroups;
    OLECHECK(this->get_modelGroups((Msxml2_tlb::ISchemaItemCollectionPtr*)&modelGroups));
    return modelGroups;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_notations(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr notations;
    OLECHECK(this->get_notations((Msxml2_tlb::ISchemaItemCollectionPtr*)&notations));
    return notations;
  }

  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_schemaLocations(void)
  {
    Msxml2_tlb::ISchemaStringCollectionPtr schemaLocations;
    OLECHECK(this->get_schemaLocations((Msxml2_tlb::ISchemaStringCollectionPtr*)&schemaLocations));
    return schemaLocations;
  }


  __property   BSTR            targetNamespace = {read = get_targetNamespace};
  __property   BSTR            version = {read = get_version};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr types = {read = get_types};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr elements = {read = get_elements};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributeGroups = {read = get_attributeGroups};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr modelGroups = {read = get_modelGroups};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr notations = {read = get_notations};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr schemaLocations = {read = get_schemaLocations};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaItemCollection
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaItemCollection  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_item(long index/*[in]*/, 
                                             Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE itemByName(BSTR name/*[in]*/, 
                                               Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/) = 0; // [1423]
  virtual HRESULT STDMETHODCALLTYPE itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                                Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/) = 0; // [1424]
  virtual HRESULT STDMETHODCALLTYPE get_length(long* length/*[out,retval]*/) = 0; // [1447]
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaItemPtr __fastcall get_item(long index/*[in]*/)
  {
    Msxml2_tlb::ISchemaItemPtr item;
    OLECHECK(this->get_item(index, (Msxml2_tlb::ISchemaItemPtr*)&item));
    return item;
  }

  Msxml2_tlb::ISchemaItemPtr __fastcall itemByName(BSTR name/*[in]*/)
  {
    Msxml2_tlb::ISchemaItemPtr item;
    OLECHECK(this->itemByName(name, (Msxml2_tlb::ISchemaItemPtr*)&item));
    return item;
  }

  Msxml2_tlb::ISchemaItemPtr __fastcall itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::ISchemaItemPtr item;
    OLECHECK(this->itemByQName(name, namespaceURI, (Msxml2_tlb::ISchemaItemPtr*)&item));
    return item;
  }

  long __fastcall get_length(void)
  {
    long length;
    OLECHECK(this->get_length((long*)&length));
    return length;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaStringCollection
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaStringCollection  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_item(long index/*[in]*/, BSTR* bstr/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_length(long* length/*[out,retval]*/) = 0; // [1447]
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_item(long index/*[in]*/)
  {
    BSTR bstr = 0;
    OLECHECK(this->get_item(index, (BSTR*)&bstr));
    return bstr;
  }

  long __fastcall get_length(void)
  {
    long length;
    OLECHECK(this->get_length((long*)&length));
    return length;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaType
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaType  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_baseTypes(Msxml2_tlb::ISchemaItemCollectionPtr* baseTypes/*[out,retval]*/) = 0; // [1428]
  virtual HRESULT STDMETHODCALLTYPE get_final(Msxml2_tlb::SCHEMADERIVATIONMETHOD* final/*[out,retval]*/) = 0; // [1437]
  virtual HRESULT STDMETHODCALLTYPE get_variety(Msxml2_tlb::SCHEMATYPEVARIETY* variety/*[out,retval]*/) = 0; // [1480]
  virtual HRESULT STDMETHODCALLTYPE get_derivedBy(Msxml2_tlb::SCHEMADERIVATIONMETHOD* derivedBy/*[out,retval]*/) = 0; // [1432]
  virtual HRESULT STDMETHODCALLTYPE isValid(BSTR data/*[in]*/, TOLEBOOL* valid/*[out,retval]*/) = 0; // [1445]
  virtual HRESULT STDMETHODCALLTYPE get_minExclusive(BSTR* minExclusive/*[out,retval]*/) = 0; // [1452]
  virtual HRESULT STDMETHODCALLTYPE get_minInclusive(BSTR* minInclusive/*[out,retval]*/) = 0; // [1453]
  virtual HRESULT STDMETHODCALLTYPE get_maxExclusive(BSTR* maxExclusive/*[out,retval]*/) = 0; // [1448]
  virtual HRESULT STDMETHODCALLTYPE get_maxInclusive(BSTR* maxInclusive/*[out,retval]*/) = 0; // [1449]
  virtual HRESULT STDMETHODCALLTYPE get_totalDigits(TVariant* totalDigits/*[out,retval]*/) = 0; // [1475]
  virtual HRESULT STDMETHODCALLTYPE get_fractionDigits(TVariant* fractionDigits/*[out,retval]*/) = 0; // [1439]
  virtual HRESULT STDMETHODCALLTYPE get_length(TVariant* length/*[out,retval]*/) = 0; // [1447]
  virtual HRESULT STDMETHODCALLTYPE get_minLength(TVariant* minLength/*[out,retval]*/) = 0; // [1454]
  virtual HRESULT STDMETHODCALLTYPE get_maxLength(TVariant* maxLength/*[out,retval]*/) = 0; // [1450]
  virtual HRESULT STDMETHODCALLTYPE get_enumeration(Msxml2_tlb::ISchemaStringCollectionPtr* enumeration/*[out,retval]*/) = 0; // [1435]
  virtual HRESULT STDMETHODCALLTYPE get_whitespace(Msxml2_tlb::SCHEMAWHITESPACE* whitespace/*[out,retval]*/) = 0; // [1482]
  virtual HRESULT STDMETHODCALLTYPE get_patterns(Msxml2_tlb::ISchemaStringCollectionPtr* patterns/*[out,retval]*/) = 0; // [1462]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_baseTypes(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr baseTypes;
    OLECHECK(this->get_baseTypes((Msxml2_tlb::ISchemaItemCollectionPtr*)&baseTypes));
    return baseTypes;
  }

  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_final(void)
  {
    Msxml2_tlb::SCHEMADERIVATIONMETHOD final;
    OLECHECK(this->get_final((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&final));
    return final;
  }

  Msxml2_tlb::SCHEMATYPEVARIETY __fastcall get_variety(void)
  {
    Msxml2_tlb::SCHEMATYPEVARIETY variety;
    OLECHECK(this->get_variety((Msxml2_tlb::SCHEMATYPEVARIETY*)&variety));
    return variety;
  }

  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_derivedBy(void)
  {
    Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy;
    OLECHECK(this->get_derivedBy((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&derivedBy));
    return derivedBy;
  }

  TOLEBOOL __fastcall isValid(BSTR data/*[in]*/)
  {
    TOLEBOOL valid;
    OLECHECK(this->isValid(data, (TOLEBOOL*)&valid));
    return valid;
  }

  BSTR __fastcall get_minExclusive(void)
  {
    BSTR minExclusive = 0;
    OLECHECK(this->get_minExclusive((BSTR*)&minExclusive));
    return minExclusive;
  }

  BSTR __fastcall get_minInclusive(void)
  {
    BSTR minInclusive = 0;
    OLECHECK(this->get_minInclusive((BSTR*)&minInclusive));
    return minInclusive;
  }

  BSTR __fastcall get_maxExclusive(void)
  {
    BSTR maxExclusive = 0;
    OLECHECK(this->get_maxExclusive((BSTR*)&maxExclusive));
    return maxExclusive;
  }

  BSTR __fastcall get_maxInclusive(void)
  {
    BSTR maxInclusive = 0;
    OLECHECK(this->get_maxInclusive((BSTR*)&maxInclusive));
    return maxInclusive;
  }

  TVariant __fastcall get_totalDigits(void)
  {
    TVariant totalDigits;
    OLECHECK(this->get_totalDigits((TVariant*)&totalDigits));
    return totalDigits;
  }

  TVariant __fastcall get_fractionDigits(void)
  {
    TVariant fractionDigits;
    OLECHECK(this->get_fractionDigits((TVariant*)&fractionDigits));
    return fractionDigits;
  }

  TVariant __fastcall get_length(void)
  {
    TVariant length;
    OLECHECK(this->get_length((TVariant*)&length));
    return length;
  }

  TVariant __fastcall get_minLength(void)
  {
    TVariant minLength;
    OLECHECK(this->get_minLength((TVariant*)&minLength));
    return minLength;
  }

  TVariant __fastcall get_maxLength(void)
  {
    TVariant maxLength;
    OLECHECK(this->get_maxLength((TVariant*)&maxLength));
    return maxLength;
  }

  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_enumeration(void)
  {
    Msxml2_tlb::ISchemaStringCollectionPtr enumeration;
    OLECHECK(this->get_enumeration((Msxml2_tlb::ISchemaStringCollectionPtr*)&enumeration));
    return enumeration;
  }

  Msxml2_tlb::SCHEMAWHITESPACE __fastcall get_whitespace(void)
  {
    Msxml2_tlb::SCHEMAWHITESPACE whitespace;
    OLECHECK(this->get_whitespace((Msxml2_tlb::SCHEMAWHITESPACE*)&whitespace));
    return whitespace;
  }

  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_patterns(void)
  {
    Msxml2_tlb::ISchemaStringCollectionPtr patterns;
    OLECHECK(this->get_patterns((Msxml2_tlb::ISchemaStringCollectionPtr*)&patterns));
    return patterns;
  }


  __property   Msxml2_tlb::ISchemaItemCollectionPtr baseTypes = {read = get_baseTypes};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD final = {read = get_final};
  __property   Msxml2_tlb::SCHEMATYPEVARIETY variety = {read = get_variety};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy = {read = get_derivedBy};
  __property   BSTR            minExclusive = {read = get_minExclusive};
  __property   BSTR            minInclusive = {read = get_minInclusive};
  __property   BSTR            maxExclusive = {read = get_maxExclusive};
  __property   BSTR            maxInclusive = {read = get_maxInclusive};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr enumeration = {read = get_enumeration};
  __property   Msxml2_tlb::SCHEMAWHITESPACE whitespace = {read = get_whitespace};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr patterns = {read = get_patterns};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaComplexType
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaComplexType  : public Msxml2_tlb::ISchemaType
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/) = 0; // [1442]
  virtual HRESULT STDMETHODCALLTYPE get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/) = 0; // [1425]
  virtual HRESULT STDMETHODCALLTYPE get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/) = 0; // [1427]
  virtual HRESULT STDMETHODCALLTYPE get_contentType(Msxml2_tlb::SCHEMACONTENTTYPE* contentType/*[out,retval]*/) = 0; // [1430]
  virtual HRESULT STDMETHODCALLTYPE get_contentModel(Msxml2_tlb::ISchemaModelGroupPtr* contentModel/*[out,retval]*/) = 0; // [1429]
  virtual HRESULT STDMETHODCALLTYPE get_prohibitedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* prohibited/*[out,retval]*/) = 0; // [1464]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_isAbstract(void)
  {
    TOLEBOOL abstract;
    OLECHECK(this->get_isAbstract((TOLEBOOL*)&abstract));
    return abstract;
  }

  Msxml2_tlb::ISchemaAnyPtr __fastcall get_anyAttribute(void)
  {
    Msxml2_tlb::ISchemaAnyPtr anyAttribute;
    OLECHECK(this->get_anyAttribute((Msxml2_tlb::ISchemaAnyPtr*)&anyAttribute));
    return anyAttribute;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr attributes;
    OLECHECK(this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes));
    return attributes;
  }

  Msxml2_tlb::SCHEMACONTENTTYPE __fastcall get_contentType(void)
  {
    Msxml2_tlb::SCHEMACONTENTTYPE contentType;
    OLECHECK(this->get_contentType((Msxml2_tlb::SCHEMACONTENTTYPE*)&contentType));
    return contentType;
  }

  Msxml2_tlb::ISchemaModelGroupPtr __fastcall get_contentModel(void)
  {
    Msxml2_tlb::ISchemaModelGroupPtr contentModel;
    OLECHECK(this->get_contentModel((Msxml2_tlb::ISchemaModelGroupPtr*)&contentModel));
    return contentModel;
  }

  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_prohibitedSubstitutions(void)
  {
    Msxml2_tlb::SCHEMADERIVATIONMETHOD prohibited;
    OLECHECK(this->get_prohibitedSubstitutions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&prohibited));
    return prohibited;
  }


  __property   TOLEBOOL        isAbstract = {read = get_isAbstract};
  __property   Msxml2_tlb::ISchemaAnyPtr anyAttribute = {read = get_anyAttribute};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::SCHEMACONTENTTYPE contentType = {read = get_contentType};
  __property   Msxml2_tlb::ISchemaModelGroupPtr contentModel = {read = get_contentModel};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD prohibitedSubstitutions = {read = get_prohibitedSubstitutions};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaAny
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaAny  : public Msxml2_tlb::ISchemaParticle
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_namespaces(Msxml2_tlb::ISchemaStringCollectionPtr* namespaces/*[out,retval]*/) = 0; // [1458]
  virtual HRESULT STDMETHODCALLTYPE get_processContents(Msxml2_tlb::SCHEMAPROCESSCONTENTS* processContents/*[out,retval]*/) = 0; // [1463]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_namespaces(void)
  {
    Msxml2_tlb::ISchemaStringCollectionPtr namespaces;
    OLECHECK(this->get_namespaces((Msxml2_tlb::ISchemaStringCollectionPtr*)&namespaces));
    return namespaces;
  }

  Msxml2_tlb::SCHEMAPROCESSCONTENTS __fastcall get_processContents(void)
  {
    Msxml2_tlb::SCHEMAPROCESSCONTENTS processContents;
    OLECHECK(this->get_processContents((Msxml2_tlb::SCHEMAPROCESSCONTENTS*)&processContents));
    return processContents;
  }


  __property   Msxml2_tlb::ISchemaStringCollectionPtr namespaces = {read = get_namespaces};
  __property   Msxml2_tlb::SCHEMAPROCESSCONTENTS processContents = {read = get_processContents};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaModelGroup
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaModelGroup  : public Msxml2_tlb::ISchemaParticle
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_particles(Msxml2_tlb::ISchemaItemCollectionPtr* particles/*[out,retval]*/) = 0; // [1461]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_particles(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr particles;
    OLECHECK(this->get_particles((Msxml2_tlb::ISchemaItemCollectionPtr*)&particles));
    return particles;
  }


  __property   Msxml2_tlb::ISchemaItemCollectionPtr particles = {read = get_particles};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDOMSchemaCollection2
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface IXMLDOMSchemaCollection2  : public Msxml2_tlb::IXMLDOMSchemaCollection
{
public:
  virtual HRESULT STDMETHODCALLTYPE validate(void) = 0; // [1419]
  virtual HRESULT STDMETHODCALLTYPE set_validateOnLoad(TOLEBOOL validateOnLoad/*[in]*/) = 0; // [1420]
  virtual HRESULT STDMETHODCALLTYPE get_validateOnLoad(TOLEBOOL* validateOnLoad/*[out,retval]*/) = 0; // [1420]
  virtual HRESULT STDMETHODCALLTYPE getSchema(BSTR namespaceURI/*[in]*/, 
                                              Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/) = 0; // [1421]
  virtual HRESULT STDMETHODCALLTYPE getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/, 
                                                   Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/) = 0; // [1422]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_validateOnLoad(void)
  {
    TOLEBOOL validateOnLoad;
    OLECHECK(this->get_validateOnLoad((TOLEBOOL*)&validateOnLoad));
    return validateOnLoad;
  }

  Msxml2_tlb::ISchemaPtr __fastcall getSchema(BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::ISchemaPtr schema;
    OLECHECK(this->getSchema(namespaceURI, (Msxml2_tlb::ISchemaPtr*)&schema));
    return schema;
  }

  Msxml2_tlb::ISchemaItemPtr __fastcall getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/)
  {
    Msxml2_tlb::ISchemaItemPtr item;
    OLECHECK(this->getDeclaration(node, (Msxml2_tlb::ISchemaItemPtr*)&item));
    return item;
  }


  __property   TOLEBOOL        validateOnLoad = {read = get_validateOnLoad, write = set_validateOnLoad};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaAttribute
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaAttribute  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/) = 0; // [1476]
  virtual HRESULT STDMETHODCALLTYPE get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/) = 0; // [1469]
  virtual HRESULT STDMETHODCALLTYPE get_defaultValue(BSTR* defaultValue/*[out,retval]*/) = 0; // [1431]
  virtual HRESULT STDMETHODCALLTYPE get_fixedValue(BSTR* fixedValue/*[out,retval]*/) = 0; // [1438]
  virtual HRESULT STDMETHODCALLTYPE get_use(Msxml2_tlb::SCHEMAUSE* use/*[out,retval]*/) = 0; // [1479]
  virtual HRESULT STDMETHODCALLTYPE get_isReference(TOLEBOOL* reference/*[out,retval]*/) = 0; // [1444]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaTypePtr __fastcall get_type(void)
  {
    Msxml2_tlb::ISchemaTypePtr type;
    OLECHECK(this->get_type((Msxml2_tlb::ISchemaTypePtr*)&type));
    return type;
  }

  Msxml2_tlb::ISchemaComplexTypePtr __fastcall get_scope(void)
  {
    Msxml2_tlb::ISchemaComplexTypePtr scope;
    OLECHECK(this->get_scope((Msxml2_tlb::ISchemaComplexTypePtr*)&scope));
    return scope;
  }

  BSTR __fastcall get_defaultValue(void)
  {
    BSTR defaultValue = 0;
    OLECHECK(this->get_defaultValue((BSTR*)&defaultValue));
    return defaultValue;
  }

  BSTR __fastcall get_fixedValue(void)
  {
    BSTR fixedValue = 0;
    OLECHECK(this->get_fixedValue((BSTR*)&fixedValue));
    return fixedValue;
  }

  Msxml2_tlb::SCHEMAUSE __fastcall get_use(void)
  {
    Msxml2_tlb::SCHEMAUSE use;
    OLECHECK(this->get_use((Msxml2_tlb::SCHEMAUSE*)&use));
    return use;
  }

  TOLEBOOL __fastcall get_isReference(void)
  {
    TOLEBOOL reference;
    OLECHECK(this->get_isReference((TOLEBOOL*)&reference));
    return reference;
  }


  __property   Msxml2_tlb::ISchemaTypePtr type = {read = get_type};
  __property   Msxml2_tlb::ISchemaComplexTypePtr scope = {read = get_scope};
  __property   BSTR            defaultValue = {read = get_defaultValue};
  __property   BSTR            fixedValue = {read = get_fixedValue};
  __property   Msxml2_tlb::SCHEMAUSE use = {read = get_use};
  __property   TOLEBOOL        isReference = {read = get_isReference};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaAttributeGroup
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaAttributeGroup  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/) = 0; // [1425]
  virtual HRESULT STDMETHODCALLTYPE get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/) = 0; // [1427]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::ISchemaAnyPtr __fastcall get_anyAttribute(void)
  {
    Msxml2_tlb::ISchemaAnyPtr anyAttribute;
    OLECHECK(this->get_anyAttribute((Msxml2_tlb::ISchemaAnyPtr*)&anyAttribute));
    return anyAttribute;
  }

  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void)
  {
    Msxml2_tlb::ISchemaItemCollectionPtr attributes;
    OLECHECK(this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes));
    return attributes;
  }


  __property   Msxml2_tlb::ISchemaAnyPtr anyAttribute = {read = get_anyAttribute};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaIdentityConstraint
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaIdentityConstraint  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_selector(BSTR* selector/*[out,retval]*/) = 0; // [1470]
  virtual HRESULT STDMETHODCALLTYPE get_fields(Msxml2_tlb::ISchemaStringCollectionPtr* fields/*[out,retval]*/) = 0; // [1436]
  virtual HRESULT STDMETHODCALLTYPE get_referencedKey(Msxml2_tlb::ISchemaIdentityConstraintPtr* key/*[out,retval]*/) = 0; // [1466]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_selector(void)
  {
    BSTR selector = 0;
    OLECHECK(this->get_selector((BSTR*)&selector));
    return selector;
  }

  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_fields(void)
  {
    Msxml2_tlb::ISchemaStringCollectionPtr fields;
    OLECHECK(this->get_fields((Msxml2_tlb::ISchemaStringCollectionPtr*)&fields));
    return fields;
  }

  Msxml2_tlb::ISchemaIdentityConstraintPtr __fastcall get_referencedKey(void)
  {
    Msxml2_tlb::ISchemaIdentityConstraintPtr key;
    OLECHECK(this->get_referencedKey((Msxml2_tlb::ISchemaIdentityConstraintPtr*)&key));
    return key;
  }


  __property   BSTR            selector = {read = get_selector};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr fields = {read = get_fields};
  __property   Msxml2_tlb::ISchemaIdentityConstraintPtr referencedKey = {read = get_referencedKey};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : ISchemaNotation
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
interface ISchemaNotation  : public Msxml2_tlb::ISchemaItem
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_systemIdentifier(BSTR* uri/*[out,retval]*/) = 0; // [1473]
  virtual HRESULT STDMETHODCALLTYPE get_publicIdentifier(BSTR* uri/*[out,retval]*/) = 0; // [1465]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_systemIdentifier(void)
  {
    BSTR uri = 0;
    OLECHECK(this->get_systemIdentifier((BSTR*)&uri));
    return uri;
  }

  BSTR __fastcall get_publicIdentifier(void)
  {
    BSTR uri = 0;
    OLECHECK(this->get_publicIdentifier((BSTR*)&uri));
    return uri;
  }


  __property   BSTR            systemIdentifier = {read = get_systemIdentifier};
  __property   BSTR            publicIdentifier = {read = get_publicIdentifier};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLElementCollection
// Indicateurs : (4432) Hidden Dual OleAutomation Dispatchable
// GUID        : {65725580-9B5D-11D0-9BFE-00C04FC99C8E}
// *********************************************************************//
interface IXMLElementCollection  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE set_length(long p/*[in]*/) = 0; // [65537]
  virtual HRESULT STDMETHODCALLTYPE get_length(long* p/*[out,retval]*/) = 0; // [65537]
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]
  // [65539] get current item, or (optional) by index and name.
  virtual HRESULT STDMETHODCALLTYPE item(TVariantInParam var1/*[in,opt]*/, 
                                         TVariantInParam var2/*[in,opt]*/, 
                                         LPDISPATCH* ppDisp/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  long __fastcall get_length(void)
  {
    long p;
    OLECHECK(this->get_length((long*)&p));
    return p;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }

  LPDISPATCH __fastcall item(TVariantInParam var1/*[in,opt]*/= TNoParam(), 
                             TVariantInParam var2/*[in,opt]*/= TNoParam())
  {
    LPDISPATCH ppDisp;
    OLECHECK(this->item(var1, var2, (LPDISPATCH*)&ppDisp));
    return ppDisp;
  }


  __property   long            length = {read = get_length, write = set_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDocument
// Indicateurs : (4432) Hidden Dual OleAutomation Dispatchable
// GUID        : {F52E2B61-18A1-11D1-B105-00805F49916B}
// *********************************************************************//
interface IXMLDocument  : public IDispatch
{
public:
  // [65637] get root IXMLElement of the XML document.
  virtual HRESULT STDMETHODCALLTYPE get_root(Msxml2_tlb::IXMLElementPtr* p/*[out,retval]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE get_fileSize(BSTR* p/*[out,retval]*/) = 0; // [65638]
  virtual HRESULT STDMETHODCALLTYPE get_fileModifiedDate(BSTR* p/*[out,retval]*/) = 0; // [65639]
  virtual HRESULT STDMETHODCALLTYPE get_fileUpdatedDate(BSTR* p/*[out,retval]*/) = 0; // [65640]
  // [65641] set URL to load an XML document from the URL.
  virtual HRESULT STDMETHODCALLTYPE get_url(BSTR* p/*[out,retval]*/) = 0;
  // [65641] set URL to load an XML document from the URL.
  virtual HRESULT STDMETHODCALLTYPE set_url(BSTR p/*[in]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE get_mimeType(BSTR* p/*[out,retval]*/) = 0; // [65642]
  // [65643] get ready state.
  virtual HRESULT STDMETHODCALLTYPE get_readyState(long* pl/*[out,retval]*/) = 0;
  // [65645] get encoding.
  virtual HRESULT STDMETHODCALLTYPE get_charset(BSTR* p/*[out,retval]*/) = 0;
  // [65645] get encoding.
  virtual HRESULT STDMETHODCALLTYPE set_charset(BSTR p/*[in]*/) = 0;
  // [65646] get XML version number.
  virtual HRESULT STDMETHODCALLTYPE get_version(BSTR* p/*[out,retval]*/) = 0;
  // [65647] get document type.
  virtual HRESULT STDMETHODCALLTYPE get_doctype(BSTR* p/*[out,retval]*/) = 0;
  virtual HRESULT STDMETHODCALLTYPE get_dtdURL(BSTR* p/*[out,retval]*/) = 0; // [65648]
  // [65644] create different types of IXMLElements.
  virtual HRESULT STDMETHODCALLTYPE createElement(TVariantInParam vType/*[in]*/, 
                                                  TVariantInParam var1/*[in,opt]*/, 
                                                  Msxml2_tlb::IXMLElementPtr* ppElem/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLElementPtr __fastcall get_root(void)
  {
    Msxml2_tlb::IXMLElementPtr p;
    OLECHECK(this->get_root((Msxml2_tlb::IXMLElementPtr*)&p));
    return p;
  }

  BSTR __fastcall get_fileSize(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_fileSize((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_fileModifiedDate(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_fileModifiedDate((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_fileUpdatedDate(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_fileUpdatedDate((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_url(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_url((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_mimeType(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_mimeType((BSTR*)&p));
    return p;
  }

  long __fastcall get_readyState(void)
  {
    long pl;
    OLECHECK(this->get_readyState((long*)&pl));
    return pl;
  }

  BSTR __fastcall get_charset(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_charset((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_version(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_version((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_doctype(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_doctype((BSTR*)&p));
    return p;
  }

  BSTR __fastcall get_dtdURL(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_dtdURL((BSTR*)&p));
    return p;
  }

  Msxml2_tlb::IXMLElementPtr __fastcall createElement(TVariantInParam vType/*[in]*/, 
                                                      TVariantInParam var1/*[in,opt]*/= TNoParam())
  {
    Msxml2_tlb::IXMLElementPtr ppElem;
    OLECHECK(this->createElement(vType, var1, (Msxml2_tlb::IXMLElementPtr*)&ppElem));
    return ppElem;
  }


  __property   Msxml2_tlb::IXMLElementPtr root = {read = get_root};
  __property   BSTR            fileSize = {read = get_fileSize};
  __property   BSTR            fileModifiedDate = {read = get_fileModifiedDate};
  __property   BSTR            fileUpdatedDate = {read = get_fileUpdatedDate};
  __property   BSTR            url = {read = get_url, write = set_url};
  __property   BSTR            mimeType = {read = get_mimeType};
  __property   long            readyState = {read = get_readyState};
  __property   BSTR            charset = {read = get_charset, write = set_charset};
  __property   BSTR            version = {read = get_version};
  __property   BSTR            doctype = {read = get_doctype};
  __property   BSTR            dtdURL = {read = get_dtdURL};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLElement
// Indicateurs : (4432) Hidden Dual OleAutomation Dispatchable
// GUID        : {3F7F31AC-E15F-11D0-9C25-00C04FC99C8E}
// *********************************************************************//
interface IXMLElement  : public IDispatch
{
public:
  // [65737] get tag name.
  virtual HRESULT STDMETHODCALLTYPE get_tagName(BSTR* p/*[out,retval]*/) = 0;
  // [65737] get tag name.
  virtual HRESULT STDMETHODCALLTYPE set_tagName(BSTR p/*[in]*/) = 0;
  // [65738] get parent IXMLElement.
  virtual HRESULT STDMETHODCALLTYPE get_parent(Msxml2_tlb::IXMLElementPtr* ppParent/*[out,retval]*/) = 0;
  // [65739] set attribute.
  virtual HRESULT STDMETHODCALLTYPE setAttribute(BSTR strPropertyName/*[in]*/, 
                                                 TVariantInParam PropertyValue/*[in]*/) = 0;
  // [65740] get attribute.
  virtual HRESULT STDMETHODCALLTYPE getAttribute(BSTR strPropertyName/*[in]*/, 
                                                 TVariant* PropertyValue/*[out,retval]*/) = 0;
  // [65741] remove attribute.
  virtual HRESULT STDMETHODCALLTYPE removeAttribute(BSTR strPropertyName/*[in]*/) = 0;
  // [65742] get a IXMLElementCollection of children.
  virtual HRESULT STDMETHODCALLTYPE get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/) = 0;
  // [65743] get type of this IXMLElement.
  virtual HRESULT STDMETHODCALLTYPE get_type(long* plType/*[out,retval]*/) = 0;
  // [65744] get text.
  virtual HRESULT STDMETHODCALLTYPE get_text(BSTR* p/*[out,retval]*/) = 0;
  // [65744] get text.
  virtual HRESULT STDMETHODCALLTYPE set_text(BSTR p/*[in]*/) = 0;
  // [65745] add a child.
  virtual HRESULT STDMETHODCALLTYPE addChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/, 
                                             long lIndex, long lReserved) = 0;
  // [65746] remove a child.
  virtual HRESULT STDMETHODCALLTYPE removeChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_tagName(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_tagName((BSTR*)&p));
    return p;
  }

  Msxml2_tlb::IXMLElementPtr __fastcall get_parent(void)
  {
    Msxml2_tlb::IXMLElementPtr ppParent;
    OLECHECK(this->get_parent((Msxml2_tlb::IXMLElementPtr*)&ppParent));
    return ppParent;
  }

  TVariant __fastcall getAttribute(BSTR strPropertyName/*[in]*/)
  {
    TVariant PropertyValue;
    OLECHECK(this->getAttribute(strPropertyName, (TVariant*)&PropertyValue));
    return PropertyValue;
  }

  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_children(void)
  {
    Msxml2_tlb::IXMLElementCollectionPtr pp;
    OLECHECK(this->get_children((Msxml2_tlb::IXMLElementCollectionPtr*)&pp));
    return pp;
  }

  long __fastcall get_type(void)
  {
    long plType;
    OLECHECK(this->get_type((long*)&plType));
    return plType;
  }

  BSTR __fastcall get_text(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_text((BSTR*)&p));
    return p;
  }


  __property   BSTR            tagName = {read = get_tagName, write = set_tagName};
  __property   Msxml2_tlb::IXMLElementPtr parent = {read = get_parent};
  __property   Msxml2_tlb::IXMLElementCollectionPtr children = {read = get_children};
  __property   long            type = {read = get_type};
  __property   BSTR            text = {read = get_text, write = set_text};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLDocument2
// Indicateurs : (4112) Hidden Dispatchable
// GUID        : {2B8DE2FE-8D2D-11D1-B2FC-00C04FD915A9}
// *********************************************************************//
interface IXMLDocument2  : public IDispatch
{
public:
  // [65637] get root IXMLElement of the XML document.
   HRESULT STDMETHODCALLTYPE get_root(Msxml2_tlb::IXMLElement2Ptr* p/*[out,retval]*/);
   HRESULT STDMETHODCALLTYPE get_fileSize(BSTR* p/*[out,retval]*/); // [65638]
   HRESULT STDMETHODCALLTYPE get_fileModifiedDate(BSTR* p/*[out,retval]*/); // [65639]
   HRESULT STDMETHODCALLTYPE get_fileUpdatedDate(BSTR* p/*[out,retval]*/); // [65640]
  // [65641] set URL to load an XML document from the URL.
   HRESULT STDMETHODCALLTYPE get_url(BSTR* p/*[out,retval]*/);
  // [65641] set URL to load an XML document from the URL.
   HRESULT STDMETHODCALLTYPE set_url(BSTR p/*[in]*/);
   HRESULT STDMETHODCALLTYPE get_mimeType(BSTR* p/*[out,retval]*/); // [65642]
  // [65643] get ready state.
   HRESULT STDMETHODCALLTYPE get_readyState(long* pl/*[out,retval]*/);
  // [65645] get encoding.
   HRESULT STDMETHODCALLTYPE get_charset(BSTR* p/*[out,retval]*/);
  // [65645] get encoding.
   HRESULT STDMETHODCALLTYPE set_charset(BSTR p/*[in]*/);
  // [65646] get XML version number.
   HRESULT STDMETHODCALLTYPE get_version(BSTR* p/*[out,retval]*/);
  // [65647] get document type.
   HRESULT STDMETHODCALLTYPE get_doctype(BSTR* p/*[out,retval]*/);
   HRESULT STDMETHODCALLTYPE get_dtdURL(BSTR* p/*[out,retval]*/); // [65648]
  // [65644] create different types of IXMLElements.
   HRESULT STDMETHODCALLTYPE createElement(TVariantInParam vType/*[in]*/, 
                                           TVariantInParam var1/*[in,opt]*/, 
                                           Msxml2_tlb::IXMLElement2Ptr* ppElem/*[out,retval]*/);
  // [65649] get asynchronous loading flag.
   HRESULT STDMETHODCALLTYPE get_async(TOLEBOOL* pf/*[out,retval]*/);
  // [65649] get asynchronous loading flag.
   HRESULT STDMETHODCALLTYPE set_async(TOLEBOOL pf/*[in]*/);
};

// *********************************************************************//
// Interface   : IXMLElement2
// Indicateurs : (4432) Hidden Dual OleAutomation Dispatchable
// GUID        : {2B8DE2FF-8D2D-11D1-B2FC-00C04FD915A9}
// *********************************************************************//
interface IXMLElement2  : public IDispatch
{
public:
  // [65737] get tag name.
  virtual HRESULT STDMETHODCALLTYPE get_tagName(BSTR* p/*[out,retval]*/) = 0;
  // [65737] get tag name.
  virtual HRESULT STDMETHODCALLTYPE set_tagName(BSTR p/*[in]*/) = 0;
  // [65738] get parent IXMLElement.
  virtual HRESULT STDMETHODCALLTYPE get_parent(Msxml2_tlb::IXMLElement2Ptr* ppParent/*[out,retval]*/) = 0;
  // [65739] set attribute.
  virtual HRESULT STDMETHODCALLTYPE setAttribute(BSTR strPropertyName/*[in]*/, 
                                                 TVariantInParam PropertyValue/*[in]*/) = 0;
  // [65740] get attribute.
  virtual HRESULT STDMETHODCALLTYPE getAttribute(BSTR strPropertyName/*[in]*/, 
                                                 TVariant* PropertyValue/*[out,retval]*/) = 0;
  // [65741] remove attribute.
  virtual HRESULT STDMETHODCALLTYPE removeAttribute(BSTR strPropertyName/*[in]*/) = 0;
  // [65742] get a IXMLElementCollection of all children.
  virtual HRESULT STDMETHODCALLTYPE get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/) = 0;
  // [65743] get type of this IXMLElement.
  virtual HRESULT STDMETHODCALLTYPE get_type(long* plType/*[out,retval]*/) = 0;
  // [65744] get text.
  virtual HRESULT STDMETHODCALLTYPE get_text(BSTR* p/*[out,retval]*/) = 0;
  // [65744] get text.
  virtual HRESULT STDMETHODCALLTYPE set_text(BSTR p/*[in]*/) = 0;
  // [65745] add a child.
  virtual HRESULT STDMETHODCALLTYPE addChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/, 
                                             long lIndex, long lReserved) = 0;
  // [65746] remove a child.
  virtual HRESULT STDMETHODCALLTYPE removeChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/) = 0;
  // [65747] get a IXMLElementCollection of all attributes.
  virtual HRESULT STDMETHODCALLTYPE get_attributes(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_tagName(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_tagName((BSTR*)&p));
    return p;
  }

  Msxml2_tlb::IXMLElement2Ptr __fastcall get_parent(void)
  {
    Msxml2_tlb::IXMLElement2Ptr ppParent;
    OLECHECK(this->get_parent((Msxml2_tlb::IXMLElement2Ptr*)&ppParent));
    return ppParent;
  }

  TVariant __fastcall getAttribute(BSTR strPropertyName/*[in]*/)
  {
    TVariant PropertyValue;
    OLECHECK(this->getAttribute(strPropertyName, (TVariant*)&PropertyValue));
    return PropertyValue;
  }

  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_children(void)
  {
    Msxml2_tlb::IXMLElementCollectionPtr pp;
    OLECHECK(this->get_children((Msxml2_tlb::IXMLElementCollectionPtr*)&pp));
    return pp;
  }

  long __fastcall get_type(void)
  {
    long plType;
    OLECHECK(this->get_type((long*)&plType));
    return plType;
  }

  BSTR __fastcall get_text(void)
  {
    BSTR p = 0;
    OLECHECK(this->get_text((BSTR*)&p));
    return p;
  }

  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_attributes(void)
  {
    Msxml2_tlb::IXMLElementCollectionPtr pp;
    OLECHECK(this->get_attributes((Msxml2_tlb::IXMLElementCollectionPtr*)&pp));
    return pp;
  }


  __property   BSTR            tagName = {read = get_tagName, write = set_tagName};
  __property   Msxml2_tlb::IXMLElement2Ptr parent = {read = get_parent};
  __property   Msxml2_tlb::IXMLElementCollectionPtr children = {read = get_children};
  __property   long            type = {read = get_type};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   Msxml2_tlb::IXMLElementCollectionPtr attributes = {read = get_attributes};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLAttribute
// Indicateurs : (4432) Hidden Dual OleAutomation Dispatchable
// GUID        : {D4D4A0FC-3B73-11D1-B2B4-00C04FB92596}
// *********************************************************************//
interface IXMLAttribute  : public IDispatch
{
public:
  // [65937] get attribute name.
  virtual HRESULT STDMETHODCALLTYPE get_name(BSTR* n/*[out,retval]*/) = 0;
  // [65938] get attribute value.
  virtual HRESULT STDMETHODCALLTYPE get_value(BSTR* v/*[out,retval]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_name(void)
  {
    BSTR n = 0;
    OLECHECK(this->get_name((BSTR*)&n));
    return n;
  }

  BSTR __fastcall get_value(void)
  {
    BSTR v = 0;
    OLECHECK(this->get_value((BSTR*)&v));
    return v;
  }


  __property   BSTR            name = {read = get_name};
  __property   BSTR            value = {read = get_value};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLError
// Indicateurs : (16) Hidden
// GUID        : {948C5AD3-C58D-11D0-9C0B-00C04FC99C8E}
// *********************************************************************//
interface IXMLError  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(Msxml2_tlb::_xml_error* pErrorReturn) = 0; // [-1]
};

// *********************************************************************//
// Interface   : IXMLDOMSelection
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {AA634FC7-5888-44A7-A257-3A47150D3A0E}
// *********************************************************************//
interface IXMLDOMSelection  : public Msxml2_tlb::IXMLDOMNodeList
{
public:
  // [81] selection expression
  virtual HRESULT STDMETHODCALLTYPE get_expr(BSTR* expression/*[out,retval]*/) = 0;
  // [81] selection expression
  virtual HRESULT STDMETHODCALLTYPE set_expr(BSTR expression/*[in]*/) = 0;
  // [82] nodes to apply selection expression to
  virtual HRESULT STDMETHODCALLTYPE get_context(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/) = 0;
  // [82] nodes to apply selection expression to
  virtual HRESULT STDMETHODCALLTYPE _set_context(Msxml2_tlb::IXMLDOMNodePtr ppNode/*[in]*/) = 0;
  // [83] gets the next node without advancing the list position
  virtual HRESULT STDMETHODCALLTYPE peekNode(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/) = 0;
  // [84] checks to see if the node matches the pattern
  virtual HRESULT STDMETHODCALLTYPE matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/) = 0;
  // [85] removes the next node
  virtual HRESULT STDMETHODCALLTYPE removeNext(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/) = 0;
  // [86] removes all the nodes that match the selection
  virtual HRESULT STDMETHODCALLTYPE removeAll(void) = 0;
  // [87] clone this object with the same position and context
  virtual HRESULT STDMETHODCALLTYPE clone(Msxml2_tlb::IXMLDOMSelectionPtr* ppNode/*[out,retval]*/) = 0;
  // [88] get the value of the named property
  virtual HRESULT STDMETHODCALLTYPE getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/) = 0;
  // [89] set the value of the named property
  virtual HRESULT STDMETHODCALLTYPE setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_expr(void)
  {
    BSTR expression = 0;
    OLECHECK(this->get_expr((BSTR*)&expression));
    return expression;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_context(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr ppNode;
    OLECHECK(this->get_context((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode));
    return ppNode;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall peekNode(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr ppNode;
    OLECHECK(this->peekNode((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode));
    return ppNode;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
  {
    Msxml2_tlb::IXMLDOMNodePtr ppNode;
    OLECHECK(this->matches(pNode, (Msxml2_tlb::IXMLDOMNodePtr*)&ppNode));
    return ppNode;
  }

  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeNext(void)
  {
    Msxml2_tlb::IXMLDOMNodePtr ppNode;
    OLECHECK(this->removeNext((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode));
    return ppNode;
  }

  Msxml2_tlb::IXMLDOMSelectionPtr __fastcall clone(void)
  {
    Msxml2_tlb::IXMLDOMSelectionPtr ppNode;
    OLECHECK(this->clone((Msxml2_tlb::IXMLDOMSelectionPtr*)&ppNode));
    return ppNode;
  }

  TVariant __fastcall getProperty(BSTR name/*[in]*/)
  {
    TVariant value;
    OLECHECK(this->getProperty(name, (TVariant*)&value));
    return value;
  }


  __property   BSTR            expr = {read = get_expr, write = set_expr};
  __property   Msxml2_tlb::IXMLDOMNodePtr context = {read = get_context, write = _set_context};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : XMLDOMDocumentEvents
// Indicateurs : (4112) Hidden Dispatchable
// GUID        : {3EFAA427-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
interface XMLDOMDocumentEvents : public TDispWrapper<IDispatch>
{
  HRESULT __fastcall ondataavailable()
  {
    _TDispID _dispid(/* ondataavailable */ DISPID(198));
    return OleFunction(_dispid);
  }

  HRESULT __fastcall onreadystatechange()
  {
    _TDispID _dispid(/* onreadystatechange */ DISPID(-609));
    return OleFunction(_dispid);
  }


};
// *********************************************************************//
// Interface   : IDSOControl
// Indicateurs : (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID        : {310AFA62-0575-11D2-9CA9-0060B0EC3D39}
// *********************************************************************//
interface IDSOControl  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr* ppDoc/*[out,retval]*/) = 0; // [65537]
  virtual HRESULT STDMETHODCALLTYPE set_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr ppDoc/*[in]*/) = 0; // [65537]
  virtual HRESULT STDMETHODCALLTYPE get_JavaDSOCompatible(long* fJavaDSOCompatible/*[out,retval]*/) = 0; // [65538]
  virtual HRESULT STDMETHODCALLTYPE set_JavaDSOCompatible(long fJavaDSOCompatible/*[in]*/) = 0; // [65538]
  virtual HRESULT STDMETHODCALLTYPE get_readyState(long* state/*[out,retval]*/) = 0; // [-525]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_XMLDocument(void)
  {
    Msxml2_tlb::IXMLDOMDocumentPtr ppDoc;
    OLECHECK(this->get_XMLDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&ppDoc));
    return ppDoc;
  }

  long __fastcall get_JavaDSOCompatible(void)
  {
    long fJavaDSOCompatible;
    OLECHECK(this->get_JavaDSOCompatible((long*)&fJavaDSOCompatible));
    return fJavaDSOCompatible;
  }

  long __fastcall get_readyState(void)
  {
    long state;
    OLECHECK(this->get_readyState((long*)&state));
    return state;
  }


  __property   Msxml2_tlb::IXMLDOMDocumentPtr XMLDocument = {read = get_XMLDocument, write = set_XMLDocument};
  __property   long            JavaDSOCompatible = {read = get_JavaDSOCompatible, write = set_JavaDSOCompatible};
  __property   long            readyState = {read = get_readyState};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IXMLHTTPRequest
// Indicateurs : (4416) Dual OleAutomation Dispatchable
// GUID        : {ED8C108D-4349-11D2-91A4-00C04F7969E8}
// *********************************************************************//
interface IXMLHTTPRequest  : public IDispatch
{
public:
  // [1] Open HTTP connection
  virtual HRESULT STDMETHODCALLTYPE open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                         TVariantInParam varAsync/*[in,opt]*/= TNoParam(), 
                                         TVariantInParam bstrUser/*[in,opt]*/= TNoParam(), 
                                         TVariantInParam bstrPassword/*[in,opt]*/= TNoParam()) = 0;
  // [2] Add HTTP request header
  virtual HRESULT STDMETHODCALLTYPE setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/) = 0;
  // [3] Get HTTP response header
  virtual HRESULT STDMETHODCALLTYPE getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                                      BSTR* pbstrValue/*[out,retval]*/) = 0;
  // [4] Get all HTTP response headers
  virtual HRESULT STDMETHODCALLTYPE getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/) = 0;
  // [5] Send HTTP request
  virtual HRESULT STDMETHODCALLTYPE send(TVariantInParam varBody/*[in,opt]*/= TNoParam()) = 0;
  // [6] Abort HTTP request
  virtual HRESULT STDMETHODCALLTYPE abort(void) = 0;
  // [7] Get HTTP status code
  virtual HRESULT STDMETHODCALLTYPE get_status(long* plStatus/*[out,retval]*/) = 0;
  // [8] Get HTTP status text
  virtual HRESULT STDMETHODCALLTYPE get_statusText(BSTR* pbstrStatus/*[out,retval]*/) = 0;
  // [9] Get response body
  virtual HRESULT STDMETHODCALLTYPE get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/) = 0;
  // [10] Get response body
  virtual HRESULT STDMETHODCALLTYPE get_responseText(BSTR* pbstrBody/*[out,retval]*/) = 0;
  // [11] Get response body
  virtual HRESULT STDMETHODCALLTYPE get_responseBody(TVariant* pvarBody/*[out,retval]*/) = 0;
  // [12] Get response body
  virtual HRESULT STDMETHODCALLTYPE get_responseStream(TVariant* pvarBody/*[out,retval]*/) = 0;
  // [13] Get ready state
  virtual HRESULT STDMETHODCALLTYPE get_readyState(long* plState/*[out,retval]*/) = 0;
  // [14] Register a complete event handler
  virtual HRESULT STDMETHODCALLTYPE set_onreadystatechange(LPDISPATCH Param1/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/)
  {
    BSTR pbstrValue = 0;
    OLECHECK(this->getResponseHeader(bstrHeader, (BSTR*)&pbstrValue));
    return pbstrValue;
  }

  BSTR __fastcall getAllResponseHeaders(void)
  {
    BSTR pbstrHeaders = 0;
    OLECHECK(this->getAllResponseHeaders((BSTR*)&pbstrHeaders));
    return pbstrHeaders;
  }

  long __fastcall get_status(void)
  {
    long plStatus;
    OLECHECK(this->get_status((long*)&plStatus));
    return plStatus;
  }

  BSTR __fastcall get_statusText(void)
  {
    BSTR pbstrStatus = 0;
    OLECHECK(this->get_statusText((BSTR*)&pbstrStatus));
    return pbstrStatus;
  }

  LPDISPATCH __fastcall get_responseXML(void)
  {
    LPDISPATCH ppBody;
    OLECHECK(this->get_responseXML((LPDISPATCH*)&ppBody));
    return ppBody;
  }

  BSTR __fastcall get_responseText(void)
  {
    BSTR pbstrBody = 0;
    OLECHECK(this->get_responseText((BSTR*)&pbstrBody));
    return pbstrBody;
  }

  TVariant __fastcall get_responseBody(void)
  {
    TVariant pvarBody;
    OLECHECK(this->get_responseBody((TVariant*)&pvarBody));
    return pvarBody;
  }

  TVariant __fastcall get_responseStream(void)
  {
    TVariant pvarBody;
    OLECHECK(this->get_responseStream((TVariant*)&pvarBody));
    return pvarBody;
  }

  long __fastcall get_readyState(void)
  {
    long plState;
    OLECHECK(this->get_readyState((long*)&plState));
    return plState;
  }


  __property   long            status = {read = get_status};
  __property   BSTR            statusText = {read = get_statusText};
  __property   LPDISPATCH      responseXML = {read = get_responseXML};
  __property   BSTR            responseText = {read = get_responseText};
  __property   long            readyState = {read = get_readyState};
  __property   LPDISPATCH      onreadystatechange = {write = set_onreadystatechange};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IServerXMLHTTPRequest
// Indicateurs : (4416) Dual OleAutomation Dispatchable
// GUID        : {2E9196BF-13BA-4DD4-91CA-6C571F281495}
// *********************************************************************//
interface IServerXMLHTTPRequest  : public Msxml2_tlb::IXMLHTTPRequest
{
public:
  // [15] Specify timeout settings (in milliseconds)
  virtual HRESULT STDMETHODCALLTYPE setTimeouts(long resolveTimeout/*[in]*/, 
                                                long connectTimeout/*[in]*/, 
                                                long sendTimeout/*[in]*/, 
                                                long receiveTimeout/*[in]*/) = 0;
  // [16] Wait for asynchronous send to complete, with optional timeout (in seconds)
  virtual HRESULT STDMETHODCALLTYPE waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                                    TOLEBOOL* isSuccessful/*[out,retval]*/) = 0;
  // [17] Get an option value
  virtual HRESULT STDMETHODCALLTYPE getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                              TVariant* value/*[out,retval]*/) = 0;
  // [18] Set an option value
  virtual HRESULT STDMETHODCALLTYPE setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                              TVariantInParam value/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/= TNoParam())
  {
    TOLEBOOL isSuccessful;
    OLECHECK(this->waitForResponse(timeoutInSeconds, (TOLEBOOL*)&isSuccessful));
    return isSuccessful;
  }

  TVariant __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/)
  {
    TVariant value;
    OLECHECK(this->getOption(option, (TVariant*)&value));
    return value;
  }



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IServerXMLHTTPRequest2
// Indicateurs : (4416) Dual OleAutomation Dispatchable
// GUID        : {2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}
// *********************************************************************//
interface IServerXMLHTTPRequest2  : public Msxml2_tlb::IServerXMLHTTPRequest
{
public:
  // [19] Specify proxy configuration
  virtual HRESULT STDMETHODCALLTYPE setProxy(Msxml2_tlb::SXH_PROXY_SETTING proxySetting/*[in]*/, 
                                             TVariantInParam varProxyServer/*[in,opt]*/= TNoParam(), 
                                             TVariantInParam varBypassList/*[in,opt]*/= TNoParam()) = 0;
  // [20] Specify proxy authentication credentials
  virtual HRESULT STDMETHODCALLTYPE setProxyCredentials(BSTR bstrUserName/*[in]*/, 
                                                        BSTR bstrPassword/*[in]*/) = 0;

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)



#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXNamespacePrefixes
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {C90352F4-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
interface IMXNamespacePrefixes  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE get_item(long index/*[in]*/, BSTR* prefix/*[out,retval]*/) = 0; // [0]
  virtual HRESULT STDMETHODCALLTYPE get_length(long* length/*[out,retval]*/) = 0; // [1416]
  virtual HRESULT STDMETHODCALLTYPE get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/) = 0; // [-4]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  BSTR __fastcall get_item(long index/*[in]*/)
  {
    BSTR prefix = 0;
    OLECHECK(this->get_item(index, (BSTR*)&prefix));
    return prefix;
  }

  long __fastcall get_length(void)
  {
    long length;
    OLECHECK(this->get_length((long*)&length));
    return length;
  }

  LPUNKNOWN __fastcall get__newEnum(void)
  {
    LPUNKNOWN ppUnk;
    OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
    return ppUnk;
  }


  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IVBMXNamespaceManager
// Indicateurs : (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID        : {C90352F5-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
interface IVBMXNamespaceManager  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE set_allowOverride(TOLEBOOL fOverride/*[in]*/) = 0; // [1406]
  virtual HRESULT STDMETHODCALLTYPE get_allowOverride(TOLEBOOL* fOverride/*[out,retval]*/) = 0; // [1406]
  virtual HRESULT STDMETHODCALLTYPE reset(void) = 0; // [1407]
  virtual HRESULT STDMETHODCALLTYPE pushContext(void) = 0; // [1408]
  virtual HRESULT STDMETHODCALLTYPE pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                                    TOLEBOOL fDeep/*[in,def,opt]*/) = 0; // [1409]
  virtual HRESULT STDMETHODCALLTYPE popContext(void) = 0; // [1410]
  virtual HRESULT STDMETHODCALLTYPE declarePrefix(BSTR prefix/*[in]*/, BSTR namespaceURI/*[in]*/) = 0; // [1411]
  virtual HRESULT STDMETHODCALLTYPE getDeclaredPrefixes(Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/) = 0; // [1412]
  virtual HRESULT STDMETHODCALLTYPE getPrefixes(BSTR namespaceURI/*[in]*/, 
                                                Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/) = 0; // [1413]
  virtual HRESULT STDMETHODCALLTYPE getURI(BSTR prefix/*[in]*/, TVariant* uri/*[out,retval]*/) = 0; // [1414]
  virtual HRESULT STDMETHODCALLTYPE getURIFromNode(BSTR strPrefix/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                                   TVariant* uri/*[out,retval]*/) = 0; // [1415]

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

  TOLEBOOL __fastcall get_allowOverride(void)
  {
    TOLEBOOL fOverride;
    OLECHECK(this->get_allowOverride((TOLEBOOL*)&fOverride));
    return fOverride;
  }

  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getDeclaredPrefixes(void)
  {
    Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
    OLECHECK(this->getDeclaredPrefixes((Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes));
    return prefixes;
  }

  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getPrefixes(BSTR namespaceURI/*[in]*/)
  {
    Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
    OLECHECK(this->getPrefixes(namespaceURI, (Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes));
    return prefixes;
  }

  TVariant __fastcall getURI(BSTR prefix/*[in]*/)
  {
    TVariant uri;
    OLECHECK(this->getURI(prefix, (TVariant*)&uri));
    return uri;
  }

  TVariant __fastcall getURIFromNode(BSTR strPrefix/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/)
  {
    TVariant uri;
    OLECHECK(this->getURIFromNode(strPrefix, contextNode, (TVariant*)&uri));
    return uri;
  }


  __property   TOLEBOOL        allowOverride = {read = get_allowOverride, write = set_allowOverride};

#endif //   __TLB_NO_INTERFACE_WRAPPERS

};

// *********************************************************************//
// Interface   : IMXNamespaceManager
// Indicateurs : (16) Hidden
// GUID        : {C90352F6-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
interface IMXNamespaceManager  : public IUnknown
{
public:
  virtual HRESULT STDMETHODCALLTYPE putAllowOverride(TOLEBOOL fOverride/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getAllowOverride(TOLEBOOL* fOverride/*[out,retval]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE reset(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE pushContext(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                                    TOLEBOOL fDeep/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE popContext(void) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE declarePrefix(unsigned_short* prefix/*[in]*/, 
                                                  unsigned_short* namespaceURI/*[in]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getDeclaredPrefix(long nIndex/*[in]*/, 
                                                      unsigned_short* pwchPrefix/*[in,out]*/, 
                                                      int* pcchPrefix/*[in,out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getPrefix(unsigned_short* pwszNamespaceURI/*[in]*/, 
                                              long nIndex/*[in]*/, 
                                              unsigned_short* pwchPrefix/*[in,out]*/, 
                                              int* pcchPrefix/*[in,out]*/) = 0; // [-1]
  virtual HRESULT STDMETHODCALLTYPE getURI(unsigned_short* pwchPrefix/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr pContextNode/*[in]*/, 
                                           unsigned_short* pwchUri/*[in,out]*/, 
                                           int* pcchUri/*[in,out]*/) = 0; // [-1]
};

#if !defined(__TLB_NO_INTERFACE_WRAPPERS)
typedef TComInterface<IXMLDOMImplementation>  TCOMIXMLDOMImplementation;

// *********************************************************************//
// DispIntf:  IXMLDOMImplementation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8F-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMImplementationDispT : public TAutoDriver<IXMLDOMImplementation>
{
public:
  IXMLDOMImplementationDispT(){}

  IXMLDOMImplementationDispT(IXMLDOMImplementation *pintf)
  {
    TAutoDriver<IXMLDOMImplementation>::Bind(pintf, false);
  }

  IXMLDOMImplementationDispT(IXMLDOMImplementationPtr pintf)
  {
    TAutoDriver<IXMLDOMImplementation>::Bind(pintf, true);
  }

  IXMLDOMImplementationDispT& operator=(IXMLDOMImplementation *pintf)
  {
    TAutoDriver<IXMLDOMImplementation>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMImplementationDispT& operator=(IXMLDOMImplementationPtr pintf)
  {
    TAutoDriver<IXMLDOMImplementation>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/, 
                                        TOLEBOOL* hasFeature/*[out,retval]*/);
  TOLEBOOL        __fastcall hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/);

};
typedef IXMLDOMImplementationDispT<IXMLDOMImplementation> IXMLDOMImplementationDisp;

typedef TComInterface<IXMLDOMNode>  TCOMIXMLDOMNode;

// *********************************************************************//
// DispIntf:  IXMLDOMNode
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF80-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMNodeDispT : public TAutoDriver<IXMLDOMNode>
{
public:
  IXMLDOMNodeDispT(){}

  IXMLDOMNodeDispT(IXMLDOMNode *pintf)
  {
    TAutoDriver<IXMLDOMNode>::Bind(pintf, false);
  }

  IXMLDOMNodeDispT(IXMLDOMNodePtr pintf)
  {
    TAutoDriver<IXMLDOMNode>::Bind(pintf, true);
  }

  IXMLDOMNodeDispT& operator=(IXMLDOMNode *pintf)
  {
    TAutoDriver<IXMLDOMNode>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMNodeDispT& operator=(IXMLDOMNodePtr pintf)
  {
    TAutoDriver<IXMLDOMNode>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMNodeDispT<IXMLDOMNode> IXMLDOMNodeDisp;

typedef TComInterface<IXMLDOMNodeList>  TCOMIXMLDOMNodeList;

// *********************************************************************//
// DispIntf:  IXMLDOMNodeList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF82-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMNodeListDispT : public TAutoDriver<IXMLDOMNodeList>
{
public:
  IXMLDOMNodeListDispT(){}

  IXMLDOMNodeListDispT(IXMLDOMNodeList *pintf)
  {
    TAutoDriver<IXMLDOMNodeList>::Bind(pintf, false);
  }

  IXMLDOMNodeListDispT(IXMLDOMNodeListPtr pintf)
  {
    TAutoDriver<IXMLDOMNodeList>::Bind(pintf, true);
  }

  IXMLDOMNodeListDispT& operator=(IXMLDOMNodeList *pintf)
  {
    TAutoDriver<IXMLDOMNodeList>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMNodeListDispT& operator=(IXMLDOMNodeListPtr pintf)
  {
    TAutoDriver<IXMLDOMNodeList>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_item(long index/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall get_length(long* listLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall nextNode(void);
  HRESULT         __fastcall reset();
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLDOMNodeListDispT<IXMLDOMNodeList> IXMLDOMNodeListDisp;

typedef TComInterface<IXMLDOMNamedNodeMap>  TCOMIXMLDOMNamedNodeMap;

// *********************************************************************//
// DispIntf:  IXMLDOMNamedNodeMap
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF83-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMNamedNodeMapDispT : public TAutoDriver<IXMLDOMNamedNodeMap>
{
public:
  IXMLDOMNamedNodeMapDispT(){}

  IXMLDOMNamedNodeMapDispT(IXMLDOMNamedNodeMap *pintf)
  {
    TAutoDriver<IXMLDOMNamedNodeMap>::Bind(pintf, false);
  }

  IXMLDOMNamedNodeMapDispT(IXMLDOMNamedNodeMapPtr pintf)
  {
    TAutoDriver<IXMLDOMNamedNodeMap>::Bind(pintf, true);
  }

  IXMLDOMNamedNodeMapDispT& operator=(IXMLDOMNamedNodeMap *pintf)
  {
    TAutoDriver<IXMLDOMNamedNodeMap>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMNamedNodeMapDispT& operator=(IXMLDOMNamedNodeMapPtr pintf)
  {
    TAutoDriver<IXMLDOMNamedNodeMap>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall getNamedItem(BSTR name/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall getNamedItem(BSTR name/*[in]*/);
  HRESULT         __fastcall setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* nameItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/);
  HRESULT         __fastcall removeNamedItem(BSTR name/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeNamedItem(BSTR name/*[in]*/);
  HRESULT         __fastcall get_item(long index/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall get_length(long* listLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall getQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall getQualifiedItem(BSTR baseName/*[in]*/, 
                                                         BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall removeQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeQualifiedItem(BSTR baseName/*[in]*/, 
                                                            BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall nextNode(void);
  HRESULT         __fastcall reset();
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLDOMNamedNodeMapDispT<IXMLDOMNamedNodeMap> IXMLDOMNamedNodeMapDisp;

typedef TComInterface<IXMLDOMDocument>  TCOMIXMLDOMDocument;

// *********************************************************************//
// DispIntf:  IXMLDOMDocument
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF81-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMDocumentDispT : public TAutoDriver<IXMLDOMDocument>
{
public:
  IXMLDOMDocumentDispT(){}

  IXMLDOMDocumentDispT(IXMLDOMDocument *pintf)
  {
    TAutoDriver<IXMLDOMDocument>::Bind(pintf, false);
  }

  IXMLDOMDocumentDispT(IXMLDOMDocumentPtr pintf)
  {
    TAutoDriver<IXMLDOMDocument>::Bind(pintf, true);
  }

  IXMLDOMDocumentDispT& operator=(IXMLDOMDocument *pintf)
  {
    TAutoDriver<IXMLDOMDocument>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMDocumentDispT& operator=(IXMLDOMDocumentPtr pintf)
  {
    TAutoDriver<IXMLDOMDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_doctype(Msxml2_tlb::IXMLDOMDocumentTypePtr* documentType/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentTypePtr __fastcall get_doctype(void);
  HRESULT         __fastcall get_implementation(Msxml2_tlb::IXMLDOMImplementationPtr* impl/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMImplementationPtr __fastcall get_implementation(void);
  HRESULT         __fastcall get_documentElement(Msxml2_tlb::IXMLDOMElementPtr* DOMElement/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMElementPtr __fastcall get_documentElement(void);
  HRESULT         __fastcall _set_documentElement(Msxml2_tlb::IXMLDOMElementPtr DOMElement/*[in]*/);
  HRESULT         __fastcall createElement(BSTR tagName/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMElementPtr* element/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMElementPtr __fastcall createElement(BSTR tagName/*[in]*/);
  HRESULT         __fastcall createDocumentFragment(Msxml2_tlb::IXMLDOMDocumentFragmentPtr* docFrag/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentFragmentPtr __fastcall createDocumentFragment(void);
  HRESULT         __fastcall createTextNode(BSTR data/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMTextPtr* text/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMTextPtr __fastcall createTextNode(BSTR data/*[in]*/);
  HRESULT         __fastcall createComment(BSTR data/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMCommentPtr* comment/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMCommentPtr __fastcall createComment(BSTR data/*[in]*/);
  HRESULT         __fastcall createCDATASection(BSTR data/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMCDATASectionPtr* cdata/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMCDATASectionPtr __fastcall createCDATASection(BSTR data/*[in]*/);
  HRESULT         __fastcall createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/, 
                                                         Msxml2_tlb::IXMLDOMProcessingInstructionPtr* pi/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMProcessingInstructionPtr __fastcall createProcessingInstruction(BSTR target/*[in]*/, 
                                                                                     BSTR data/*[in]*/);
  HRESULT         __fastcall createAttribute(BSTR name/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMAttributePtr* attribute/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMAttributePtr __fastcall createAttribute(BSTR name/*[in]*/);
  HRESULT         __fastcall createEntityReference(BSTR name/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMEntityReferencePtr* entityRef/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMEntityReferencePtr __fastcall createEntityReference(BSTR name/*[in]*/);
  HRESULT         __fastcall getElementsByTagName(BSTR tagName/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall getElementsByTagName(BSTR tagName/*[in]*/);
  HRESULT         __fastcall createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                        BSTR namespaceURI/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                                   BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall nodeFromID(BSTR idString/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall nodeFromID(BSTR idString/*[in]*/);
  HRESULT         __fastcall load(TVariantInParam xmlSource/*[in]*/, 
                                  TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall load(TVariantInParam xmlSource/*[in]*/);
  HRESULT         __fastcall get_readyState(long* value/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall get_parseError(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall get_parseError(void);
  HRESULT         __fastcall get_url(BSTR* urlString/*[out,retval]*/);
  BSTR            __fastcall get_url(void);
  HRESULT         __fastcall get_async(TOLEBOOL* isAsync/*[out,retval]*/);
  TOLEBOOL        __fastcall get_async(void);
  HRESULT         __fastcall set_async(TOLEBOOL isAsync/*[in]*/);
  HRESULT         __fastcall abort();
  HRESULT         __fastcall loadXML(BSTR bstrXML/*[in]*/, TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall loadXML(BSTR bstrXML/*[in]*/);
  HRESULT         __fastcall save(TVariantInParam destination/*[in]*/);
  HRESULT         __fastcall get_validateOnParse(TOLEBOOL* isValidating/*[out,retval]*/);
  TOLEBOOL        __fastcall get_validateOnParse(void);
  HRESULT         __fastcall set_validateOnParse(TOLEBOOL isValidating/*[in]*/);
  HRESULT         __fastcall get_resolveExternals(TOLEBOOL* isResolving/*[out,retval]*/);
  TOLEBOOL        __fastcall get_resolveExternals(void);
  HRESULT         __fastcall set_resolveExternals(TOLEBOOL isResolving/*[in]*/);
  HRESULT         __fastcall get_preserveWhiteSpace(TOLEBOOL* isPreserving/*[out,retval]*/);
  TOLEBOOL        __fastcall get_preserveWhiteSpace(void);
  HRESULT         __fastcall set_preserveWhiteSpace(TOLEBOOL isPreserving/*[in]*/);
  HRESULT         __fastcall set_onreadystatechange(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_ondataavailable(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_ontransformnode(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   Msxml2_tlb::IXMLDOMDocumentTypePtr doctype = {read = get_doctype};
  __property   Msxml2_tlb::IXMLDOMImplementationPtr implementation = {read = get_implementation};
  __property   Msxml2_tlb::IXMLDOMElementPtr documentElement = {read = get_documentElement, write = _set_documentElement};
  __property   long            readyState = {read = get_readyState};
  __property   Msxml2_tlb::IXMLDOMParseErrorPtr parseError = {read = get_parseError};
  __property   BSTR            url = {read = get_url};
  __property   TOLEBOOL        async = {read = get_async, write = set_async};
  __property   TOLEBOOL        validateOnParse = {read = get_validateOnParse, write = set_validateOnParse};
  __property   TOLEBOOL        resolveExternals = {read = get_resolveExternals, write = set_resolveExternals};
  __property   TOLEBOOL        preserveWhiteSpace = {read = get_preserveWhiteSpace, write = set_preserveWhiteSpace};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMDocumentDispT<IXMLDOMDocument> IXMLDOMDocumentDisp;

typedef TComInterface<IXMLDOMDocumentType>  TCOMIXMLDOMDocumentType;

// *********************************************************************//
// DispIntf:  IXMLDOMDocumentType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8B-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMDocumentTypeDispT : public TAutoDriver<IXMLDOMDocumentType>
{
public:
  IXMLDOMDocumentTypeDispT(){}

  IXMLDOMDocumentTypeDispT(IXMLDOMDocumentType *pintf)
  {
    TAutoDriver<IXMLDOMDocumentType>::Bind(pintf, false);
  }

  IXMLDOMDocumentTypeDispT(IXMLDOMDocumentTypePtr pintf)
  {
    TAutoDriver<IXMLDOMDocumentType>::Bind(pintf, true);
  }

  IXMLDOMDocumentTypeDispT& operator=(IXMLDOMDocumentType *pintf)
  {
    TAutoDriver<IXMLDOMDocumentType>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMDocumentTypeDispT& operator=(IXMLDOMDocumentTypePtr pintf)
  {
    TAutoDriver<IXMLDOMDocumentType>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_name(BSTR* rootName/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_entities(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* entityMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_entities(void);
  HRESULT         __fastcall get_notations(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* notationMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_notations(void);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            name = {read = get_name};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr entities = {read = get_entities};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr notations = {read = get_notations};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMDocumentTypeDispT<IXMLDOMDocumentType> IXMLDOMDocumentTypeDisp;

typedef TComInterface<IXMLDOMElement>  TCOMIXMLDOMElement;

// *********************************************************************//
// DispIntf:  IXMLDOMElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF86-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMElementDispT : public TAutoDriver<IXMLDOMElement>
{
public:
  IXMLDOMElementDispT(){}

  IXMLDOMElementDispT(IXMLDOMElement *pintf)
  {
    TAutoDriver<IXMLDOMElement>::Bind(pintf, false);
  }

  IXMLDOMElementDispT(IXMLDOMElementPtr pintf)
  {
    TAutoDriver<IXMLDOMElement>::Bind(pintf, true);
  }

  IXMLDOMElementDispT& operator=(IXMLDOMElement *pintf)
  {
    TAutoDriver<IXMLDOMElement>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMElementDispT& operator=(IXMLDOMElementPtr pintf)
  {
    TAutoDriver<IXMLDOMElement>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_tagName(BSTR* tagName/*[out,retval]*/);
  BSTR            __fastcall get_tagName(void);
  HRESULT         __fastcall getAttribute(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getAttribute(BSTR name/*[in]*/);
  HRESULT         __fastcall setAttribute(BSTR name/*[in]*/, TVariantInParam value/*[in]*/);
  HRESULT         __fastcall removeAttribute(BSTR name/*[in]*/);
  HRESULT         __fastcall getAttributeNode(BSTR name/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMAttributePtr __fastcall getAttributeNode(BSTR name/*[in]*/);
  HRESULT         __fastcall setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMAttributePtr __fastcall setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/);
  HRESULT         __fastcall removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/
                                                 , 
                                                 Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMAttributePtr __fastcall removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/);
  HRESULT         __fastcall getElementsByTagName(BSTR tagName/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall getElementsByTagName(BSTR tagName/*[in]*/);
  HRESULT         __fastcall normalize();
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            tagName = {read = get_tagName};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMElementDispT<IXMLDOMElement> IXMLDOMElementDisp;

typedef TComInterface<IXMLDOMAttribute>  TCOMIXMLDOMAttribute;

// *********************************************************************//
// DispIntf:  IXMLDOMAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF85-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMAttributeDispT : public TAutoDriver<IXMLDOMAttribute>
{
public:
  IXMLDOMAttributeDispT(){}

  IXMLDOMAttributeDispT(IXMLDOMAttribute *pintf)
  {
    TAutoDriver<IXMLDOMAttribute>::Bind(pintf, false);
  }

  IXMLDOMAttributeDispT(IXMLDOMAttributePtr pintf)
  {
    TAutoDriver<IXMLDOMAttribute>::Bind(pintf, true);
  }

  IXMLDOMAttributeDispT& operator=(IXMLDOMAttribute *pintf)
  {
    TAutoDriver<IXMLDOMAttribute>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMAttributeDispT& operator=(IXMLDOMAttributePtr pintf)
  {
    TAutoDriver<IXMLDOMAttribute>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_name(BSTR* attributeName/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_value(TVariant* attributeValue/*[out,retval]*/);
  TVariant        __fastcall get_value(void);
  HRESULT         __fastcall set_value(TVariantInParam attributeValue/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            name = {read = get_name};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMAttributeDispT<IXMLDOMAttribute> IXMLDOMAttributeDisp;

typedef TComInterface<IXMLDOMDocumentFragment>  TCOMIXMLDOMDocumentFragment;

// *********************************************************************//
// DispIntf:  IXMLDOMDocumentFragment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA413-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template<class T>
class IXMLDOMDocumentFragmentDispT : public TAutoDriver<IXMLDOMDocumentFragment>
{
public:
  IXMLDOMDocumentFragmentDispT(){}

  IXMLDOMDocumentFragmentDispT(IXMLDOMDocumentFragment *pintf)
  {
    TAutoDriver<IXMLDOMDocumentFragment>::Bind(pintf, false);
  }

  IXMLDOMDocumentFragmentDispT(IXMLDOMDocumentFragmentPtr pintf)
  {
    TAutoDriver<IXMLDOMDocumentFragment>::Bind(pintf, true);
  }

  IXMLDOMDocumentFragmentDispT& operator=(IXMLDOMDocumentFragment *pintf)
  {
    TAutoDriver<IXMLDOMDocumentFragment>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMDocumentFragmentDispT& operator=(IXMLDOMDocumentFragmentPtr pintf)
  {
    TAutoDriver<IXMLDOMDocumentFragment>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMDocumentFragmentDispT<IXMLDOMDocumentFragment> IXMLDOMDocumentFragmentDisp;

typedef TComInterface<IXMLDOMCharacterData>  TCOMIXMLDOMCharacterData;

// *********************************************************************//
// DispIntf:  IXMLDOMCharacterData
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF84-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMCharacterDataDispT : public TAutoDriver<IXMLDOMCharacterData>
{
public:
  IXMLDOMCharacterDataDispT(){}

  IXMLDOMCharacterDataDispT(IXMLDOMCharacterData *pintf)
  {
    TAutoDriver<IXMLDOMCharacterData>::Bind(pintf, false);
  }

  IXMLDOMCharacterDataDispT(IXMLDOMCharacterDataPtr pintf)
  {
    TAutoDriver<IXMLDOMCharacterData>::Bind(pintf, true);
  }

  IXMLDOMCharacterDataDispT& operator=(IXMLDOMCharacterData *pintf)
  {
    TAutoDriver<IXMLDOMCharacterData>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMCharacterDataDispT& operator=(IXMLDOMCharacterDataPtr pintf)
  {
    TAutoDriver<IXMLDOMCharacterData>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_data(BSTR* data/*[out,retval]*/);
  BSTR            __fastcall get_data(void);
  HRESULT         __fastcall set_data(BSTR data/*[in]*/);
  HRESULT         __fastcall get_length(long* dataLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall substringData(long offset/*[in]*/, long count/*[in]*/, 
                                           BSTR* data/*[out,retval]*/);
  BSTR            __fastcall substringData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall appendData(BSTR data/*[in]*/);
  HRESULT         __fastcall insertData(long offset/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall deleteData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            data = {read = get_data, write = set_data};
  __property   long            length = {read = get_length};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMCharacterDataDispT<IXMLDOMCharacterData> IXMLDOMCharacterDataDisp;

typedef TComInterface<IXMLDOMText>  TCOMIXMLDOMText;

// *********************************************************************//
// DispIntf:  IXMLDOMText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF87-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMTextDispT : public TAutoDriver<IXMLDOMText>
{
public:
  IXMLDOMTextDispT(){}

  IXMLDOMTextDispT(IXMLDOMText *pintf)
  {
    TAutoDriver<IXMLDOMText>::Bind(pintf, false);
  }

  IXMLDOMTextDispT(IXMLDOMTextPtr pintf)
  {
    TAutoDriver<IXMLDOMText>::Bind(pintf, true);
  }

  IXMLDOMTextDispT& operator=(IXMLDOMText *pintf)
  {
    TAutoDriver<IXMLDOMText>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMTextDispT& operator=(IXMLDOMTextPtr pintf)
  {
    TAutoDriver<IXMLDOMText>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall splitText(long offset/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMTextPtr* rightHandTextNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMTextPtr __fastcall splitText(long offset/*[in]*/);
  HRESULT         __fastcall get_data(BSTR* data/*[out,retval]*/);
  BSTR            __fastcall get_data(void);
  HRESULT         __fastcall set_data(BSTR data/*[in]*/);
  HRESULT         __fastcall get_length(long* dataLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall substringData(long offset/*[in]*/, long count/*[in]*/, 
                                           BSTR* data/*[out,retval]*/);
  BSTR            __fastcall substringData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall appendData(BSTR data/*[in]*/);
  HRESULT         __fastcall insertData(long offset/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall deleteData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            data = {read = get_data, write = set_data};
  __property   long            length = {read = get_length};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMTextDispT<IXMLDOMText> IXMLDOMTextDisp;

typedef TComInterface<IXMLDOMComment>  TCOMIXMLDOMComment;

// *********************************************************************//
// DispIntf:  IXMLDOMComment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF88-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMCommentDispT : public TAutoDriver<IXMLDOMComment>
{
public:
  IXMLDOMCommentDispT(){}

  IXMLDOMCommentDispT(IXMLDOMComment *pintf)
  {
    TAutoDriver<IXMLDOMComment>::Bind(pintf, false);
  }

  IXMLDOMCommentDispT(IXMLDOMCommentPtr pintf)
  {
    TAutoDriver<IXMLDOMComment>::Bind(pintf, true);
  }

  IXMLDOMCommentDispT& operator=(IXMLDOMComment *pintf)
  {
    TAutoDriver<IXMLDOMComment>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMCommentDispT& operator=(IXMLDOMCommentPtr pintf)
  {
    TAutoDriver<IXMLDOMComment>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_data(BSTR* data/*[out,retval]*/);
  BSTR            __fastcall get_data(void);
  HRESULT         __fastcall set_data(BSTR data/*[in]*/);
  HRESULT         __fastcall get_length(long* dataLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall substringData(long offset/*[in]*/, long count/*[in]*/, 
                                           BSTR* data/*[out,retval]*/);
  BSTR            __fastcall substringData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall appendData(BSTR data/*[in]*/);
  HRESULT         __fastcall insertData(long offset/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall deleteData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            data = {read = get_data, write = set_data};
  __property   long            length = {read = get_length};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMCommentDispT<IXMLDOMComment> IXMLDOMCommentDisp;

typedef TComInterface<IXMLDOMCDATASection>  TCOMIXMLDOMCDATASection;

// *********************************************************************//
// DispIntf:  IXMLDOMCDATASection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8A-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMCDATASectionDispT : public TAutoDriver<IXMLDOMCDATASection>
{
public:
  IXMLDOMCDATASectionDispT(){}

  IXMLDOMCDATASectionDispT(IXMLDOMCDATASection *pintf)
  {
    TAutoDriver<IXMLDOMCDATASection>::Bind(pintf, false);
  }

  IXMLDOMCDATASectionDispT(IXMLDOMCDATASectionPtr pintf)
  {
    TAutoDriver<IXMLDOMCDATASection>::Bind(pintf, true);
  }

  IXMLDOMCDATASectionDispT& operator=(IXMLDOMCDATASection *pintf)
  {
    TAutoDriver<IXMLDOMCDATASection>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMCDATASectionDispT& operator=(IXMLDOMCDATASectionPtr pintf)
  {
    TAutoDriver<IXMLDOMCDATASection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall splitText(long offset/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMTextPtr* rightHandTextNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMTextPtr __fastcall splitText(long offset/*[in]*/);
  HRESULT         __fastcall get_data(BSTR* data/*[out,retval]*/);
  BSTR            __fastcall get_data(void);
  HRESULT         __fastcall set_data(BSTR data/*[in]*/);
  HRESULT         __fastcall get_length(long* dataLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall substringData(long offset/*[in]*/, long count/*[in]*/, 
                                           BSTR* data/*[out,retval]*/);
  BSTR            __fastcall substringData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall appendData(BSTR data/*[in]*/);
  HRESULT         __fastcall insertData(long offset/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall deleteData(long offset/*[in]*/, long count/*[in]*/);
  HRESULT         __fastcall replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);



  __property   BSTR            data = {read = get_data, write = set_data};
  __property   long            length = {read = get_length};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMCDATASectionDispT<IXMLDOMCDATASection> IXMLDOMCDATASectionDisp;

typedef TComInterface<IXMLDOMProcessingInstruction>  TCOMIXMLDOMProcessingInstruction;

// *********************************************************************//
// DispIntf:  IXMLDOMProcessingInstruction
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF89-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMProcessingInstructionDispT : public TAutoDriver<IXMLDOMProcessingInstruction>
{
public:
  IXMLDOMProcessingInstructionDispT(){}

  IXMLDOMProcessingInstructionDispT(IXMLDOMProcessingInstruction *pintf)
  {
    TAutoDriver<IXMLDOMProcessingInstruction>::Bind(pintf, false);
  }

  IXMLDOMProcessingInstructionDispT(IXMLDOMProcessingInstructionPtr pintf)
  {
    TAutoDriver<IXMLDOMProcessingInstruction>::Bind(pintf, true);
  }

  IXMLDOMProcessingInstructionDispT& operator=(IXMLDOMProcessingInstruction *pintf)
  {
    TAutoDriver<IXMLDOMProcessingInstruction>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMProcessingInstructionDispT& operator=(IXMLDOMProcessingInstructionPtr pintf)
  {
    TAutoDriver<IXMLDOMProcessingInstruction>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_target(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_target(void);
  HRESULT         __fastcall get_data(BSTR* value/*[out,retval]*/);
  BSTR            __fastcall get_data(void);
  HRESULT         __fastcall set_data(BSTR value/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            target = {read = get_target};
  __property   BSTR            data = {read = get_data, write = set_data};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMProcessingInstructionDispT<IXMLDOMProcessingInstruction> IXMLDOMProcessingInstructionDisp;

typedef TComInterface<IXMLDOMEntityReference>  TCOMIXMLDOMEntityReference;

// *********************************************************************//
// DispIntf:  IXMLDOMEntityReference
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8E-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMEntityReferenceDispT : public TAutoDriver<IXMLDOMEntityReference>
{
public:
  IXMLDOMEntityReferenceDispT(){}

  IXMLDOMEntityReferenceDispT(IXMLDOMEntityReference *pintf)
  {
    TAutoDriver<IXMLDOMEntityReference>::Bind(pintf, false);
  }

  IXMLDOMEntityReferenceDispT(IXMLDOMEntityReferencePtr pintf)
  {
    TAutoDriver<IXMLDOMEntityReference>::Bind(pintf, true);
  }

  IXMLDOMEntityReferenceDispT& operator=(IXMLDOMEntityReference *pintf)
  {
    TAutoDriver<IXMLDOMEntityReference>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMEntityReferenceDispT& operator=(IXMLDOMEntityReferencePtr pintf)
  {
    TAutoDriver<IXMLDOMEntityReference>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMEntityReferenceDispT<IXMLDOMEntityReference> IXMLDOMEntityReferenceDisp;

typedef TComInterface<IXMLDOMParseError>  TCOMIXMLDOMParseError;

// *********************************************************************//
// DispIntf:  IXMLDOMParseError
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA426-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template<class T>
class IXMLDOMParseErrorDispT : public TAutoDriver<IXMLDOMParseError>
{
public:
  IXMLDOMParseErrorDispT(){}

  IXMLDOMParseErrorDispT(IXMLDOMParseError *pintf)
  {
    TAutoDriver<IXMLDOMParseError>::Bind(pintf, false);
  }

  IXMLDOMParseErrorDispT(IXMLDOMParseErrorPtr pintf)
  {
    TAutoDriver<IXMLDOMParseError>::Bind(pintf, true);
  }

  IXMLDOMParseErrorDispT& operator=(IXMLDOMParseError *pintf)
  {
    TAutoDriver<IXMLDOMParseError>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMParseErrorDispT& operator=(IXMLDOMParseErrorPtr pintf)
  {
    TAutoDriver<IXMLDOMParseError>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_errorCode(long* errorCode/*[out,retval]*/);
  long            __fastcall get_errorCode(void);
  HRESULT         __fastcall get_url(BSTR* urlString/*[out,retval]*/);
  BSTR            __fastcall get_url(void);
  HRESULT         __fastcall get_reason(BSTR* reasonString/*[out,retval]*/);
  BSTR            __fastcall get_reason(void);
  HRESULT         __fastcall get_srcText(BSTR* sourceString/*[out,retval]*/);
  BSTR            __fastcall get_srcText(void);
  HRESULT         __fastcall get_line(long* lineNumber/*[out,retval]*/);
  long            __fastcall get_line(void);
  HRESULT         __fastcall get_linepos(long* linePosition/*[out,retval]*/);
  long            __fastcall get_linepos(void);
  HRESULT         __fastcall get_filepos(long* filePosition/*[out,retval]*/);
  long            __fastcall get_filepos(void);

  __property   long            errorCode = {read = get_errorCode};
  __property   BSTR            url = {read = get_url};
  __property   BSTR            reason = {read = get_reason};
  __property   BSTR            srcText = {read = get_srcText};
  __property   long            line = {read = get_line};
  __property   long            linepos = {read = get_linepos};
  __property   long            filepos = {read = get_filepos};
};
typedef IXMLDOMParseErrorDispT<IXMLDOMParseError> IXMLDOMParseErrorDisp;

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMDocument2
// Interface: IXMLDOMDocument2
// *********************************************************************//
template <class T /* IXMLDOMDocument2 */ >
class TCOMIXMLDOMDocument2T : public TComInterface<IXMLDOMDocument2>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIXMLDOMDocument2T() {}
  TCOMIXMLDOMDocument2T(IXMLDOMDocument2 *intf, bool addRef = false) : TComInterface<IXMLDOMDocument2>(intf, addRef) {}
  TCOMIXMLDOMDocument2T(const TCOMIXMLDOMDocument2T& src) : TComInterface<IXMLDOMDocument2>(src) {}
  TCOMIXMLDOMDocument2T& operator=(const TCOMIXMLDOMDocument2T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_namespaces(Msxml2_tlb::IXMLDOMSchemaCollectionPtr* namespaceCollection/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMSchemaCollectionPtr __fastcall get_namespaces(void);
  HRESULT         __fastcall get_schemas(TVariant* otherCollection/*[out,retval]*/);
  TVariant        __fastcall get_schemas(void);
  HRESULT         __fastcall _set_schemas(TVariantInParam otherCollection/*[in]*/);
  HRESULT         __fastcall validate(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall validate(void);
  HRESULT         __fastcall setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/);
  HRESULT         __fastcall getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getProperty(BSTR name/*[in]*/);

  __property   Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaces = {read = get_namespaces};
};
typedef TCOMIXMLDOMDocument2T<IXMLDOMDocument2> TCOMIXMLDOMDocument2;

// *********************************************************************//
// DispIntf:  IXMLDOMDocument2
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF95-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMDocument2DispT : public TAutoDriver<IXMLDOMDocument2>
{
public:
  IXMLDOMDocument2DispT(){}

  IXMLDOMDocument2DispT(IXMLDOMDocument2 *pintf)
  {
    TAutoDriver<IXMLDOMDocument2>::Bind(pintf, false);
  }

  IXMLDOMDocument2DispT(IXMLDOMDocument2Ptr pintf)
  {
    TAutoDriver<IXMLDOMDocument2>::Bind(pintf, true);
  }

  IXMLDOMDocument2DispT& operator=(IXMLDOMDocument2 *pintf)
  {
    TAutoDriver<IXMLDOMDocument2>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMDocument2DispT& operator=(IXMLDOMDocument2Ptr pintf)
  {
    TAutoDriver<IXMLDOMDocument2>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DOMDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DOMDocument);
  }

  HRESULT         __fastcall get_namespaces(Msxml2_tlb::IXMLDOMSchemaCollectionPtr* namespaceCollection/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMSchemaCollectionPtr __fastcall get_namespaces(void);
  HRESULT         __fastcall get_schemas(TVariant* otherCollection/*[out,retval]*/);
  TVariant        __fastcall get_schemas(void);
  HRESULT         __fastcall _set_schemas(TVariantInParam otherCollection/*[in]*/);
  HRESULT         __fastcall validate(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall validate(void);
  HRESULT         __fastcall setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/);
  HRESULT         __fastcall getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getProperty(BSTR name/*[in]*/);
  HRESULT         __fastcall get_doctype(Msxml2_tlb::IXMLDOMDocumentTypePtr* documentType/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentTypePtr __fastcall get_doctype(void);
  HRESULT         __fastcall get_implementation(Msxml2_tlb::IXMLDOMImplementationPtr* impl/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMImplementationPtr __fastcall get_implementation(void);
  HRESULT         __fastcall get_documentElement(Msxml2_tlb::IXMLDOMElementPtr* DOMElement/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMElementPtr __fastcall get_documentElement(void);
  HRESULT         __fastcall _set_documentElement(Msxml2_tlb::IXMLDOMElementPtr DOMElement/*[in]*/);
  HRESULT         __fastcall createElement(BSTR tagName/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMElementPtr* element/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMElementPtr __fastcall createElement(BSTR tagName/*[in]*/);
  HRESULT         __fastcall createDocumentFragment(Msxml2_tlb::IXMLDOMDocumentFragmentPtr* docFrag/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentFragmentPtr __fastcall createDocumentFragment(void);
  HRESULT         __fastcall createTextNode(BSTR data/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMTextPtr* text/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMTextPtr __fastcall createTextNode(BSTR data/*[in]*/);
  HRESULT         __fastcall createComment(BSTR data/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMCommentPtr* comment/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMCommentPtr __fastcall createComment(BSTR data/*[in]*/);
  HRESULT         __fastcall createCDATASection(BSTR data/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMCDATASectionPtr* cdata/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMCDATASectionPtr __fastcall createCDATASection(BSTR data/*[in]*/);
  HRESULT         __fastcall createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/, 
                                                         Msxml2_tlb::IXMLDOMProcessingInstructionPtr* pi/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMProcessingInstructionPtr __fastcall createProcessingInstruction(BSTR target/*[in]*/, 
                                                                                     BSTR data/*[in]*/);
  HRESULT         __fastcall createAttribute(BSTR name/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMAttributePtr* attribute/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMAttributePtr __fastcall createAttribute(BSTR name/*[in]*/);
  HRESULT         __fastcall createEntityReference(BSTR name/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMEntityReferencePtr* entityRef/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMEntityReferencePtr __fastcall createEntityReference(BSTR name/*[in]*/);
  HRESULT         __fastcall getElementsByTagName(BSTR tagName/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall getElementsByTagName(BSTR tagName/*[in]*/);
  HRESULT         __fastcall createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                        BSTR namespaceURI/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                                   BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall nodeFromID(BSTR idString/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall nodeFromID(BSTR idString/*[in]*/);
  HRESULT         __fastcall load(TVariantInParam xmlSource/*[in]*/, 
                                  TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall load(TVariantInParam xmlSource/*[in]*/);
  HRESULT         __fastcall get_readyState(long* value/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall get_parseError(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall get_parseError(void);
  HRESULT         __fastcall get_url(BSTR* urlString/*[out,retval]*/);
  BSTR            __fastcall get_url(void);
  HRESULT         __fastcall get_async(TOLEBOOL* isAsync/*[out,retval]*/);
  TOLEBOOL        __fastcall get_async(void);
  HRESULT         __fastcall set_async(TOLEBOOL isAsync/*[in]*/);
  HRESULT         __fastcall abort();
  HRESULT         __fastcall loadXML(BSTR bstrXML/*[in]*/, TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall loadXML(BSTR bstrXML/*[in]*/);
  HRESULT         __fastcall save(TVariantInParam destination/*[in]*/);
  HRESULT         __fastcall get_validateOnParse(TOLEBOOL* isValidating/*[out,retval]*/);
  TOLEBOOL        __fastcall get_validateOnParse(void);
  HRESULT         __fastcall set_validateOnParse(TOLEBOOL isValidating/*[in]*/);
  HRESULT         __fastcall get_resolveExternals(TOLEBOOL* isResolving/*[out,retval]*/);
  TOLEBOOL        __fastcall get_resolveExternals(void);
  HRESULT         __fastcall set_resolveExternals(TOLEBOOL isResolving/*[in]*/);
  HRESULT         __fastcall get_preserveWhiteSpace(TOLEBOOL* isPreserving/*[out,retval]*/);
  TOLEBOOL        __fastcall get_preserveWhiteSpace(void);
  HRESULT         __fastcall set_preserveWhiteSpace(TOLEBOOL isPreserving/*[in]*/);
  HRESULT         __fastcall set_onreadystatechange(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_ondataavailable(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall set_ontransformnode(TVariantInParam Param1/*[in]*/);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaces = {read = get_namespaces};

  __property   Msxml2_tlb::IXMLDOMDocumentTypePtr doctype = {read = get_doctype};
  __property   Msxml2_tlb::IXMLDOMImplementationPtr implementation = {read = get_implementation};
  __property   Msxml2_tlb::IXMLDOMElementPtr documentElement = {read = get_documentElement, write = _set_documentElement};
  __property   long            readyState = {read = get_readyState};
  __property   Msxml2_tlb::IXMLDOMParseErrorPtr parseError = {read = get_parseError};
  __property   BSTR            url = {read = get_url};
  __property   TOLEBOOL        async = {read = get_async, write = set_async};
  __property   TOLEBOOL        validateOnParse = {read = get_validateOnParse, write = set_validateOnParse};
  __property   TOLEBOOL        resolveExternals = {read = get_resolveExternals, write = set_resolveExternals};
  __property   TOLEBOOL        preserveWhiteSpace = {read = get_preserveWhiteSpace, write = set_preserveWhiteSpace};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMDocument2DispT<IXMLDOMDocument2> IXMLDOMDocument2Disp;

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMSchemaCollection
// Interface: IXMLDOMSchemaCollection
// *********************************************************************//
template <class T /* IXMLDOMSchemaCollection */ >
class TCOMIXMLDOMSchemaCollectionT : public TComInterface<IXMLDOMSchemaCollection>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIXMLDOMSchemaCollectionT() {}
  TCOMIXMLDOMSchemaCollectionT(IXMLDOMSchemaCollection *intf, bool addRef = false) : TComInterface<IXMLDOMSchemaCollection>(intf, addRef) {}
  TCOMIXMLDOMSchemaCollectionT(const TCOMIXMLDOMSchemaCollectionT& src) : TComInterface<IXMLDOMSchemaCollection>(src) {}
  TCOMIXMLDOMSchemaCollectionT& operator=(const TCOMIXMLDOMSchemaCollectionT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/);
  HRESULT         __fastcall get(BSTR namespaceURI/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall remove(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(long index/*[in]*/);
  HRESULT         __fastcall addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef TCOMIXMLDOMSchemaCollectionT<IXMLDOMSchemaCollection> TCOMIXMLDOMSchemaCollection;

// *********************************************************************//
// DispIntf:  IXMLDOMSchemaCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {373984C8-B845-449B-91E7-45AC83036ADE}
// *********************************************************************//
template<class T>
class IXMLDOMSchemaCollectionDispT : public TAutoDriver<IXMLDOMSchemaCollection>
{
public:
  IXMLDOMSchemaCollectionDispT(){}

  IXMLDOMSchemaCollectionDispT(IXMLDOMSchemaCollection *pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection>::Bind(pintf, false);
  }

  IXMLDOMSchemaCollectionDispT(IXMLDOMSchemaCollectionPtr pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection>::Bind(pintf, true);
  }

  IXMLDOMSchemaCollectionDispT& operator=(IXMLDOMSchemaCollection *pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMSchemaCollectionDispT& operator=(IXMLDOMSchemaCollectionPtr pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_XMLSchemaCache));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_XMLSchemaCache);
  }

  HRESULT         __fastcall add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/);
  HRESULT         __fastcall get(BSTR namespaceURI/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall remove(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(long index/*[in]*/);
  HRESULT         __fastcall addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLDOMSchemaCollectionDispT<IXMLDOMSchemaCollection> IXMLDOMSchemaCollectionDisp;

typedef TComInterface<IXMLDOMNotation>  TCOMIXMLDOMNotation;

// *********************************************************************//
// DispIntf:  IXMLDOMNotation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8C-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMNotationDispT : public TAutoDriver<IXMLDOMNotation>
{
public:
  IXMLDOMNotationDispT(){}

  IXMLDOMNotationDispT(IXMLDOMNotation *pintf)
  {
    TAutoDriver<IXMLDOMNotation>::Bind(pintf, false);
  }

  IXMLDOMNotationDispT(IXMLDOMNotationPtr pintf)
  {
    TAutoDriver<IXMLDOMNotation>::Bind(pintf, true);
  }

  IXMLDOMNotationDispT& operator=(IXMLDOMNotation *pintf)
  {
    TAutoDriver<IXMLDOMNotation>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMNotationDispT& operator=(IXMLDOMNotationPtr pintf)
  {
    TAutoDriver<IXMLDOMNotation>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_publicId(TVariant* publicId/*[out,retval]*/);
  TVariant        __fastcall get_publicId(void);
  HRESULT         __fastcall get_systemId(TVariant* systemId/*[out,retval]*/);
  TVariant        __fastcall get_systemId(void);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMNotationDispT<IXMLDOMNotation> IXMLDOMNotationDisp;

typedef TComInterface<IXMLDOMEntity>  TCOMIXMLDOMEntity;

// *********************************************************************//
// DispIntf:  IXMLDOMEntity
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8D-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXMLDOMEntityDispT : public TAutoDriver<IXMLDOMEntity>
{
public:
  IXMLDOMEntityDispT(){}

  IXMLDOMEntityDispT(IXMLDOMEntity *pintf)
  {
    TAutoDriver<IXMLDOMEntity>::Bind(pintf, false);
  }

  IXMLDOMEntityDispT(IXMLDOMEntityPtr pintf)
  {
    TAutoDriver<IXMLDOMEntity>::Bind(pintf, true);
  }

  IXMLDOMEntityDispT& operator=(IXMLDOMEntity *pintf)
  {
    TAutoDriver<IXMLDOMEntity>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMEntityDispT& operator=(IXMLDOMEntityPtr pintf)
  {
    TAutoDriver<IXMLDOMEntity>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_publicId(TVariant* publicId/*[out,retval]*/);
  TVariant        __fastcall get_publicId(void);
  HRESULT         __fastcall get_systemId(TVariant* systemId/*[out,retval]*/);
  TVariant        __fastcall get_systemId(void);
  HRESULT         __fastcall get_notationName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_notationName(void);
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);

  __property   BSTR            notationName = {read = get_notationName};

  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXMLDOMEntityDispT<IXMLDOMEntity> IXMLDOMEntityDisp;

typedef TComInterface<IXTLRuntime>  TCOMIXTLRuntime;

// *********************************************************************//
// DispIntf:  IXTLRuntime
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA425-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template<class T>
class IXTLRuntimeDispT : public TAutoDriver<IXTLRuntime>
{
public:
  IXTLRuntimeDispT(){}

  IXTLRuntimeDispT(IXTLRuntime *pintf)
  {
    TAutoDriver<IXTLRuntime>::Bind(pintf, false);
  }

  IXTLRuntimeDispT(IXTLRuntimePtr pintf)
  {
    TAutoDriver<IXTLRuntime>::Bind(pintf, true);
  }

  IXTLRuntimeDispT& operator=(IXTLRuntime *pintf)
  {
    TAutoDriver<IXTLRuntime>::Bind(pintf, false);
    return *this;
  }

  IXTLRuntimeDispT& operator=(IXTLRuntimePtr pintf)
  {
    TAutoDriver<IXTLRuntime>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                      long* pID/*[out,retval]*/);
  long            __fastcall uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                   long* pDepth/*[out,retval]*/);
  long            __fastcall depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                         long* pNumber/*[out,retval]*/);
  long            __fastcall childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                                 long* pNumber/*[out,retval]*/);
  long            __fastcall ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                                 long* pNumber/*[out,retval]*/);
  long            __fastcall absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                         BSTR* pbstrFormattedString/*[out,retval]*/);
  BSTR            __fastcall formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/);
  HRESULT         __fastcall formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                          BSTR* pbstrFormattedString/*[out,retval]*/);
  BSTR            __fastcall formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/);
  HRESULT         __fastcall formatDate(TVariantInParam varDate/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                        TVariantInParam varDestLocale/*[in,opt]*/, 
                                        BSTR* pbstrFormattedString/*[out,retval]*/);
  BSTR            __fastcall formatDate(TVariantInParam varDate/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                        TVariantInParam varDestLocale/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall formatTime(TVariantInParam varTime/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                        TVariantInParam varDestLocale/*[in,opt]*/, 
                                        BSTR* pbstrFormattedString/*[out,retval]*/);
  BSTR            __fastcall formatTime(TVariantInParam varTime/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                        TVariantInParam varDestLocale/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_nodeName(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_nodeName(void);
  HRESULT         __fastcall get_nodeValue(TVariant* value/*[out,retval]*/);
  TVariant        __fastcall get_nodeValue(void);
  HRESULT         __fastcall set_nodeValue(TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/);
  Msxml2_tlb::DOMNodeType __fastcall get_nodeType(void);
  HRESULT         __fastcall get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_parentNode(void);
  HRESULT         __fastcall get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall get_childNodes(void);
  HRESULT         __fastcall get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_firstChild(void);
  HRESULT         __fastcall get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_lastChild(void);
  HRESULT         __fastcall get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_previousSibling(void);
  HRESULT         __fastcall get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_nextSibling(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall get_attributes(void);
  HRESULT         __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     TVariantInParam refChild/*[in]*/);
  HRESULT         __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/);
  HRESULT         __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/);
  HRESULT         __fastcall hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/);
  TOLEBOOL        __fastcall hasChildNodes(void);
  HRESULT         __fastcall get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_ownerDocument(void);
  HRESULT         __fastcall cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall cloneNode(TOLEBOOL deep/*[in]*/);
  HRESULT         __fastcall get_nodeTypeString(BSTR* nodeType/*[out,retval]*/);
  BSTR            __fastcall get_nodeTypeString(void);
  HRESULT         __fastcall get_text(BSTR* text/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR text/*[in]*/);
  HRESULT         __fastcall get_specified(TOLEBOOL* isSpecified/*[out,retval]*/);
  TOLEBOOL        __fastcall get_specified(void);
  HRESULT         __fastcall get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_definition(void);
  HRESULT         __fastcall get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/);
  TVariant        __fastcall get_nodeTypedValue(void);
  HRESULT         __fastcall set_nodeTypedValue(TVariantInParam typedValue/*[in]*/);
  HRESULT         __fastcall get_dataType(TVariant* dataTypeName/*[out,retval]*/);
  TVariant        __fastcall get_dataType(void);
  HRESULT         __fastcall set_dataType(BSTR dataTypeName/*[in]*/);
  HRESULT         __fastcall get_xml(BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall get_xml(void);
  HRESULT         __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/);
  BSTR            __fastcall transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodeListPtr __fastcall selectNodes(BSTR queryString/*[in]*/);
  HRESULT         __fastcall selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall selectSingleNode(BSTR queryString/*[in]*/);
  HRESULT         __fastcall get_parsed(TOLEBOOL* isParsed/*[out,retval]*/);
  TOLEBOOL        __fastcall get_parsed(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_prefix(BSTR* prefixString/*[out,retval]*/);
  BSTR            __fastcall get_prefix(void);
  HRESULT         __fastcall get_baseName(BSTR* nameString/*[out,retval]*/);
  BSTR            __fastcall get_baseName(void);
  HRESULT         __fastcall transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/);


  __property   BSTR            nodeName = {read = get_nodeName};
  __property   Msxml2_tlb::DOMNodeType nodeType = {read = get_nodeType};
  __property   Msxml2_tlb::IXMLDOMNodePtr parentNode = {read = get_parentNode};
  __property   Msxml2_tlb::IXMLDOMNodeListPtr childNodes = {read = get_childNodes};
  __property   Msxml2_tlb::IXMLDOMNodePtr firstChild = {read = get_firstChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr lastChild = {read = get_lastChild};
  __property   Msxml2_tlb::IXMLDOMNodePtr previousSibling = {read = get_previousSibling};
  __property   Msxml2_tlb::IXMLDOMNodePtr nextSibling = {read = get_nextSibling};
  __property   Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::IXMLDOMDocumentPtr ownerDocument = {read = get_ownerDocument};
  __property   BSTR            nodeTypeString = {read = get_nodeTypeString};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   TOLEBOOL        specified = {read = get_specified};
  __property   Msxml2_tlb::IXMLDOMNodePtr definition = {read = get_definition};
  __property   BSTR            dataType = {write = set_dataType};
  __property   BSTR            xml = {read = get_xml};
  __property   TOLEBOOL        parsed = {read = get_parsed};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   BSTR            prefix = {read = get_prefix};
  __property   BSTR            baseName = {read = get_baseName};
};
typedef IXTLRuntimeDispT<IXTLRuntime> IXTLRuntimeDisp;

// *********************************************************************//
// SmartIntf: TCOMIXSLTemplate
// Interface: IXSLTemplate
// *********************************************************************//
template <class T /* IXSLTemplate */ >
class TCOMIXSLTemplateT : public TComInterface<IXSLTemplate>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIXSLTemplateT() {}
  TCOMIXSLTemplateT(IXSLTemplate *intf, bool addRef = false) : TComInterface<IXSLTemplate>(intf, addRef) {}
  TCOMIXSLTemplateT(const TCOMIXSLTemplateT& src) : TComInterface<IXSLTemplate>(src) {}
  TCOMIXSLTemplateT& operator=(const TCOMIXSLTemplateT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall _set_stylesheet(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_stylesheet(void);
  HRESULT         __fastcall createProcessor(Msxml2_tlb::IXSLProcessorPtr* ppProcessor/*[out,retval]*/);
  Msxml2_tlb::IXSLProcessorPtr __fastcall createProcessor(void);

  __property   Msxml2_tlb::IXMLDOMNodePtr stylesheet = {read = get_stylesheet, write = _set_stylesheet};
};
typedef TCOMIXSLTemplateT<IXSLTemplate> TCOMIXSLTemplate;

// *********************************************************************//
// DispIntf:  IXSLTemplate
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF93-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXSLTemplateDispT : public TAutoDriver<IXSLTemplate>
{
public:
  IXSLTemplateDispT(){}

  IXSLTemplateDispT(IXSLTemplate *pintf)
  {
    TAutoDriver<IXSLTemplate>::Bind(pintf, false);
  }

  IXSLTemplateDispT(IXSLTemplatePtr pintf)
  {
    TAutoDriver<IXSLTemplate>::Bind(pintf, true);
  }

  IXSLTemplateDispT& operator=(IXSLTemplate *pintf)
  {
    TAutoDriver<IXSLTemplate>::Bind(pintf, false);
    return *this;
  }

  IXSLTemplateDispT& operator=(IXSLTemplatePtr pintf)
  {
    TAutoDriver<IXSLTemplate>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_XSLTemplate));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_XSLTemplate);
  }

  HRESULT         __fastcall _set_stylesheet(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/);
  HRESULT         __fastcall get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_stylesheet(void);
  HRESULT         __fastcall createProcessor(Msxml2_tlb::IXSLProcessorPtr* ppProcessor/*[out,retval]*/);
  Msxml2_tlb::IXSLProcessorPtr __fastcall createProcessor(void);

  __property   Msxml2_tlb::IXMLDOMNodePtr stylesheet = {read = get_stylesheet, write = _set_stylesheet};
};
typedef IXSLTemplateDispT<IXSLTemplate> IXSLTemplateDisp;

typedef TComInterface<IXSLProcessor>  TCOMIXSLProcessor;

// *********************************************************************//
// DispIntf:  IXSLProcessor
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF92-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template<class T>
class IXSLProcessorDispT : public TAutoDriver<IXSLProcessor>
{
public:
  IXSLProcessorDispT(){}

  IXSLProcessorDispT(IXSLProcessor *pintf)
  {
    TAutoDriver<IXSLProcessor>::Bind(pintf, false);
  }

  IXSLProcessorDispT(IXSLProcessorPtr pintf)
  {
    TAutoDriver<IXSLProcessor>::Bind(pintf, true);
  }

  IXSLProcessorDispT& operator=(IXSLProcessor *pintf)
  {
    TAutoDriver<IXSLProcessor>::Bind(pintf, false);
    return *this;
  }

  IXSLProcessorDispT& operator=(IXSLProcessorPtr pintf)
  {
    TAutoDriver<IXSLProcessor>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_input(TVariantInParam pVar/*[in]*/);
  HRESULT         __fastcall get_input(TVariant* pVar/*[out,retval]*/);
  TVariant        __fastcall get_input(void);
  HRESULT         __fastcall get_ownerTemplate(Msxml2_tlb::IXSLTemplatePtr* ppTemplate/*[out,retval]*/);
  Msxml2_tlb::IXSLTemplatePtr __fastcall get_ownerTemplate(void);
  HRESULT         __fastcall setStartMode(BSTR mode/*[in]*/, BSTR namespaceURI/*[in,def,opt]*/);
  HRESULT         __fastcall get_startMode(BSTR* mode/*[out,retval]*/);
  BSTR            __fastcall get_startMode(void);
  HRESULT         __fastcall get_startModeURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_startModeURI(void);
  HRESULT         __fastcall set_output(TVariantInParam pOutput/*[in]*/);
  HRESULT         __fastcall get_output(TVariant* pOutput/*[out,retval]*/);
  TVariant        __fastcall get_output(void);
  HRESULT         __fastcall transform(TOLEBOOL* pDone/*[out,retval]*/);
  TOLEBOOL        __fastcall transform(void);
  HRESULT         __fastcall reset();
  HRESULT         __fastcall get_readyState(long* pReadyState/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall addParameter(BSTR baseName/*[in]*/, TVariantInParam parameter/*[in]*/, 
                                          BSTR namespaceURI/*[in,def,opt]*/);
  HRESULT         __fastcall addObject(LPDISPATCH obj/*[in]*/, BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_stylesheet(void);

  __property   Msxml2_tlb::IXSLTemplatePtr ownerTemplate = {read = get_ownerTemplate};
  __property   BSTR            startMode = {read = get_startMode};
  __property   BSTR            startModeURI = {read = get_startModeURI};
  __property   long            readyState = {read = get_readyState};
  __property   Msxml2_tlb::IXMLDOMNodePtr stylesheet = {read = get_stylesheet};
};
typedef IXSLProcessorDispT<IXSLProcessor> IXSLProcessorDisp;

typedef TComInterface<ISAXXMLReader>  TCOMISAXXMLReader;

typedef TComInterface<ISAXEntityResolver>  TCOMISAXEntityResolver;

typedef TComInterface<ISAXContentHandler>  TCOMISAXContentHandler;

typedef TComInterface<ISAXLocator>  TCOMISAXLocator;

typedef TComInterface<ISAXAttributes>  TCOMISAXAttributes;

typedef TComInterface<ISAXDTDHandler>  TCOMISAXDTDHandler;

typedef TComInterface<ISAXErrorHandler>  TCOMISAXErrorHandler;

typedef TComInterface<ISAXXMLFilter>  TCOMISAXXMLFilter;

typedef TComInterface<ISAXLexicalHandler>  TCOMISAXLexicalHandler;

typedef TComInterface<ISAXDeclHandler>  TCOMISAXDeclHandler;

// *********************************************************************//
// SmartIntf: TCOMIVBSAXXMLReader
// Interface: IVBSAXXMLReader
// *********************************************************************//
template <class T /* IVBSAXXMLReader */ >
class TCOMIVBSAXXMLReaderT : public TComInterface<IVBSAXXMLReader>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIVBSAXXMLReaderT() {}
  TCOMIVBSAXXMLReaderT(IVBSAXXMLReader *intf, bool addRef = false) : TComInterface<IVBSAXXMLReader>(intf, addRef) {}
  TCOMIVBSAXXMLReaderT(const TCOMIVBSAXXMLReaderT& src) : TComInterface<IVBSAXXMLReader>(src) {}
  TCOMIVBSAXXMLReaderT& operator=(const TCOMIVBSAXXMLReaderT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall getFeature(BSTR strName/*[in]*/, TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall getFeature(BSTR strName/*[in]*/);
  HRESULT         __fastcall putFeature(BSTR strName/*[in]*/, TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall getProperty(BSTR strName/*[in]*/, TVariant* varValue/*[out,retval]*/);
  TVariant        __fastcall getProperty(BSTR strName/*[in]*/);
  HRESULT         __fastcall putProperty(BSTR strName/*[in]*/, TVariantInParam varValue/*[in]*/);
  HRESULT         __fastcall get_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr* oResolver/*[out,retval]*/);
  Msxml2_tlb::IVBSAXEntityResolverPtr __fastcall get_entityResolver(void);
  HRESULT         __fastcall _set_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr oResolver/*[in]*/);
  HRESULT         __fastcall get_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXContentHandlerPtr __fastcall get_contentHandler(void);
  HRESULT         __fastcall _set_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXDTDHandlerPtr __fastcall get_dtdHandler(void);
  HRESULT         __fastcall _set_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXErrorHandlerPtr __fastcall get_errorHandler(void);
  HRESULT         __fastcall _set_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_baseURL(BSTR* strBaseURL/*[out,retval]*/);
  BSTR            __fastcall get_baseURL(void);
  HRESULT         __fastcall set_baseURL(BSTR strBaseURL/*[in]*/);
  HRESULT         __fastcall get_secureBaseURL(BSTR* strSecureBaseURL/*[out,retval]*/);
  BSTR            __fastcall get_secureBaseURL(void);
  HRESULT         __fastcall set_secureBaseURL(BSTR strSecureBaseURL/*[in]*/);
  HRESULT         __fastcall parse(TVariantInParam varInput/*[in]*/);
  HRESULT         __fastcall parseURL(BSTR strURL/*[in]*/);

  __property   Msxml2_tlb::IVBSAXEntityResolverPtr entityResolver = {read = get_entityResolver, write = _set_entityResolver};
  __property   Msxml2_tlb::IVBSAXContentHandlerPtr contentHandler = {read = get_contentHandler, write = _set_contentHandler};
  __property   Msxml2_tlb::IVBSAXDTDHandlerPtr dtdHandler = {read = get_dtdHandler, write = _set_dtdHandler};
  __property   Msxml2_tlb::IVBSAXErrorHandlerPtr errorHandler = {read = get_errorHandler, write = _set_errorHandler};
  __property   BSTR            baseURL = {read = get_baseURL, write = set_baseURL};
  __property   BSTR            secureBaseURL = {read = get_secureBaseURL, write = set_secureBaseURL};
};
typedef TCOMIVBSAXXMLReaderT<IVBSAXXMLReader> TCOMIVBSAXXMLReader;

// *********************************************************************//
// DispIntf:  IVBSAXXMLReader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8C033CAA-6CD6-4F73-B728-4531AF74945F}
// *********************************************************************//
template<class T>
class IVBSAXXMLReaderDispT : public TAutoDriver<IVBSAXXMLReader>
{
public:
  IVBSAXXMLReaderDispT(){}

  IVBSAXXMLReaderDispT(IVBSAXXMLReader *pintf)
  {
    TAutoDriver<IVBSAXXMLReader>::Bind(pintf, false);
  }

  IVBSAXXMLReaderDispT(IVBSAXXMLReaderPtr pintf)
  {
    TAutoDriver<IVBSAXXMLReader>::Bind(pintf, true);
  }

  IVBSAXXMLReaderDispT& operator=(IVBSAXXMLReader *pintf)
  {
    TAutoDriver<IVBSAXXMLReader>::Bind(pintf, false);
    return *this;
  }

  IVBSAXXMLReaderDispT& operator=(IVBSAXXMLReaderPtr pintf)
  {
    TAutoDriver<IVBSAXXMLReader>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SAXXMLReader));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SAXXMLReader);
  }

  HRESULT         __fastcall getFeature(BSTR strName/*[in]*/, TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall getFeature(BSTR strName/*[in]*/);
  HRESULT         __fastcall putFeature(BSTR strName/*[in]*/, TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall getProperty(BSTR strName/*[in]*/, TVariant* varValue/*[out,retval]*/);
  TVariant        __fastcall getProperty(BSTR strName/*[in]*/);
  HRESULT         __fastcall putProperty(BSTR strName/*[in]*/, TVariantInParam varValue/*[in]*/);
  HRESULT         __fastcall get_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr* oResolver/*[out,retval]*/);
  Msxml2_tlb::IVBSAXEntityResolverPtr __fastcall get_entityResolver(void);
  HRESULT         __fastcall _set_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr oResolver/*[in]*/);
  HRESULT         __fastcall get_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXContentHandlerPtr __fastcall get_contentHandler(void);
  HRESULT         __fastcall _set_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXDTDHandlerPtr __fastcall get_dtdHandler(void);
  HRESULT         __fastcall _set_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr* oHandler/*[out,retval]*/);
  Msxml2_tlb::IVBSAXErrorHandlerPtr __fastcall get_errorHandler(void);
  HRESULT         __fastcall _set_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler/*[in]*/);
  HRESULT         __fastcall get_baseURL(BSTR* strBaseURL/*[out,retval]*/);
  BSTR            __fastcall get_baseURL(void);
  HRESULT         __fastcall set_baseURL(BSTR strBaseURL/*[in]*/);
  HRESULT         __fastcall get_secureBaseURL(BSTR* strSecureBaseURL/*[out,retval]*/);
  BSTR            __fastcall get_secureBaseURL(void);
  HRESULT         __fastcall set_secureBaseURL(BSTR strSecureBaseURL/*[in]*/);
  HRESULT         __fastcall parse(TVariantInParam varInput/*[in]*/);
  HRESULT         __fastcall parseURL(BSTR strURL/*[in]*/);

  __property   Msxml2_tlb::IVBSAXEntityResolverPtr entityResolver = {read = get_entityResolver, write = _set_entityResolver};
  __property   Msxml2_tlb::IVBSAXContentHandlerPtr contentHandler = {read = get_contentHandler, write = _set_contentHandler};
  __property   Msxml2_tlb::IVBSAXDTDHandlerPtr dtdHandler = {read = get_dtdHandler, write = _set_dtdHandler};
  __property   Msxml2_tlb::IVBSAXErrorHandlerPtr errorHandler = {read = get_errorHandler, write = _set_errorHandler};
  __property   BSTR            baseURL = {read = get_baseURL, write = set_baseURL};
  __property   BSTR            secureBaseURL = {read = get_secureBaseURL, write = set_secureBaseURL};
};
typedef IVBSAXXMLReaderDispT<IVBSAXXMLReader> IVBSAXXMLReaderDisp;

typedef TComInterface<IVBSAXEntityResolver>  TCOMIVBSAXEntityResolver;

// *********************************************************************//
// DispIntf:  IVBSAXEntityResolver
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}
// *********************************************************************//
template<class T>
class IVBSAXEntityResolverDispT : public TAutoDriver<IVBSAXEntityResolver>
{
public:
  IVBSAXEntityResolverDispT(){}

  IVBSAXEntityResolverDispT(IVBSAXEntityResolver *pintf)
  {
    TAutoDriver<IVBSAXEntityResolver>::Bind(pintf, false);
  }

  IVBSAXEntityResolverDispT(IVBSAXEntityResolverPtr pintf)
  {
    TAutoDriver<IVBSAXEntityResolver>::Bind(pintf, true);
  }

  IVBSAXEntityResolverDispT& operator=(IVBSAXEntityResolver *pintf)
  {
    TAutoDriver<IVBSAXEntityResolver>::Bind(pintf, false);
    return *this;
  }

  IVBSAXEntityResolverDispT& operator=(IVBSAXEntityResolverPtr pintf)
  {
    TAutoDriver<IVBSAXEntityResolver>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall resolveEntity(BSTR* strPublicId/*[in,out]*/, 
                                           BSTR* strSystemId/*[in,out]*/, 
                                           TVariant* varInput/*[out,retval]*/);
  TVariant        __fastcall resolveEntity(BSTR* strPublicId/*[in,out]*/, 
                                           BSTR* strSystemId/*[in,out]*/);

};
typedef IVBSAXEntityResolverDispT<IVBSAXEntityResolver> IVBSAXEntityResolverDisp;

typedef TComInterface<IVBSAXContentHandler>  TCOMIVBSAXContentHandler;

// *********************************************************************//
// DispIntf:  IVBSAXContentHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}
// *********************************************************************//
template<class T>
class IVBSAXContentHandlerDispT : public TAutoDriver<IVBSAXContentHandler>
{
public:
  IVBSAXContentHandlerDispT(){}

  IVBSAXContentHandlerDispT(IVBSAXContentHandler *pintf)
  {
    TAutoDriver<IVBSAXContentHandler>::Bind(pintf, false);
  }

  IVBSAXContentHandlerDispT(IVBSAXContentHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXContentHandler>::Bind(pintf, true);
  }

  IVBSAXContentHandlerDispT& operator=(IVBSAXContentHandler *pintf)
  {
    TAutoDriver<IVBSAXContentHandler>::Bind(pintf, false);
    return *this;
  }

  IVBSAXContentHandlerDispT& operator=(IVBSAXContentHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXContentHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall _set_documentLocator(Msxml2_tlb::IVBSAXLocatorPtr Param1/*[in]*/);
  HRESULT         __fastcall startDocument();
  HRESULT         __fastcall endDocument();
  HRESULT         __fastcall startPrefixMapping(BSTR* strPrefix/*[in,out]*/, 
                                                BSTR* strURI/*[in,out]*/);
  HRESULT         __fastcall endPrefixMapping(BSTR* strPrefix/*[in,out]*/);
  HRESULT         __fastcall startElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                          BSTR* strLocalName/*[in,out]*/, BSTR* strQName/*[in,out]*/
                                          , Msxml2_tlb::IVBSAXAttributesPtr oAttributes/*[in]*/);
  HRESULT         __fastcall endElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                        BSTR* strLocalName/*[in,out]*/, BSTR* strQName/*[in,out]*/);
  HRESULT         __fastcall characters(BSTR* strChars/*[in,out]*/);
  HRESULT         __fastcall ignorableWhitespace(BSTR* strChars/*[in,out]*/);
  HRESULT         __fastcall processingInstruction(BSTR* strTarget/*[in,out]*/, 
                                                   BSTR* strData/*[in,out]*/);
  HRESULT         __fastcall skippedEntity(BSTR* strName/*[in,out]*/);

  __property   Msxml2_tlb::IVBSAXLocatorPtr documentLocator = {write = _set_documentLocator};
};
typedef IVBSAXContentHandlerDispT<IVBSAXContentHandler> IVBSAXContentHandlerDisp;

typedef TComInterface<IVBSAXLocator>  TCOMIVBSAXLocator;

// *********************************************************************//
// DispIntf:  IVBSAXLocator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}
// *********************************************************************//
template<class T>
class IVBSAXLocatorDispT : public TAutoDriver<IVBSAXLocator>
{
public:
  IVBSAXLocatorDispT(){}

  IVBSAXLocatorDispT(IVBSAXLocator *pintf)
  {
    TAutoDriver<IVBSAXLocator>::Bind(pintf, false);
  }

  IVBSAXLocatorDispT(IVBSAXLocatorPtr pintf)
  {
    TAutoDriver<IVBSAXLocator>::Bind(pintf, true);
  }

  IVBSAXLocatorDispT& operator=(IVBSAXLocator *pintf)
  {
    TAutoDriver<IVBSAXLocator>::Bind(pintf, false);
    return *this;
  }

  IVBSAXLocatorDispT& operator=(IVBSAXLocatorPtr pintf)
  {
    TAutoDriver<IVBSAXLocator>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_columnNumber(int* nColumn/*[out,retval]*/);
  int             __fastcall get_columnNumber(void);
  HRESULT         __fastcall get_lineNumber(int* nLine/*[out,retval]*/);
  int             __fastcall get_lineNumber(void);
  HRESULT         __fastcall get_publicId(BSTR* strPublicId/*[out,retval]*/);
  BSTR            __fastcall get_publicId(void);
  HRESULT         __fastcall get_systemId(BSTR* strSystemId/*[out,retval]*/);
  BSTR            __fastcall get_systemId(void);

  __property   int             columnNumber = {read = get_columnNumber};
  __property   int             lineNumber = {read = get_lineNumber};
  __property   BSTR            publicId = {read = get_publicId};
  __property   BSTR            systemId = {read = get_systemId};
};
typedef IVBSAXLocatorDispT<IVBSAXLocator> IVBSAXLocatorDisp;

typedef TComInterface<IVBSAXAttributes>  TCOMIVBSAXAttributes;

// *********************************************************************//
// DispIntf:  IVBSAXAttributes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}
// *********************************************************************//
template<class T>
class IVBSAXAttributesDispT : public TAutoDriver<IVBSAXAttributes>
{
public:
  IVBSAXAttributesDispT(){}

  IVBSAXAttributesDispT(IVBSAXAttributes *pintf)
  {
    TAutoDriver<IVBSAXAttributes>::Bind(pintf, false);
  }

  IVBSAXAttributesDispT(IVBSAXAttributesPtr pintf)
  {
    TAutoDriver<IVBSAXAttributes>::Bind(pintf, true);
  }

  IVBSAXAttributesDispT& operator=(IVBSAXAttributes *pintf)
  {
    TAutoDriver<IVBSAXAttributes>::Bind(pintf, false);
    return *this;
  }

  IVBSAXAttributesDispT& operator=(IVBSAXAttributesPtr pintf)
  {
    TAutoDriver<IVBSAXAttributes>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_length(int* nLength/*[out,retval]*/);
  int             __fastcall get_length(void);
  HRESULT         __fastcall getURI(int nIndex/*[in]*/, BSTR* strURI/*[out,retval]*/);
  BSTR            __fastcall getURI(int nIndex/*[in]*/);
  HRESULT         __fastcall getLocalName(int nIndex/*[in]*/, BSTR* strLocalName/*[out,retval]*/);
  BSTR            __fastcall getLocalName(int nIndex/*[in]*/);
  HRESULT         __fastcall getQName(int nIndex/*[in]*/, BSTR* strQName/*[out,retval]*/);
  BSTR            __fastcall getQName(int nIndex/*[in]*/);
  HRESULT         __fastcall getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                              int* nIndex/*[out,retval]*/);
  int             __fastcall getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/);
  HRESULT         __fastcall getIndexFromQName(BSTR strQName/*[in]*/, int* nIndex/*[out,retval]*/);
  int             __fastcall getIndexFromQName(BSTR strQName/*[in]*/);
  HRESULT         __fastcall getType(int nIndex/*[in]*/, BSTR* strType/*[out,retval]*/);
  BSTR            __fastcall getType(int nIndex/*[in]*/);
  HRESULT         __fastcall getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                             BSTR* strType/*[out,retval]*/);
  BSTR            __fastcall getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/);
  HRESULT         __fastcall getTypeFromQName(BSTR strQName/*[in]*/, BSTR* strType/*[out,retval]*/);
  BSTR            __fastcall getTypeFromQName(BSTR strQName/*[in]*/);
  HRESULT         __fastcall getValue(int nIndex/*[in]*/, BSTR* strValue/*[out,retval]*/);
  BSTR            __fastcall getValue(int nIndex/*[in]*/);
  HRESULT         __fastcall getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                              BSTR* strValue/*[out,retval]*/);
  BSTR            __fastcall getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/);
  HRESULT         __fastcall getValueFromQName(BSTR strQName/*[in]*/, BSTR* strValue/*[out,retval]*/);
  BSTR            __fastcall getValueFromQName(BSTR strQName/*[in]*/);

  __property   int             length = {read = get_length};
};
typedef IVBSAXAttributesDispT<IVBSAXAttributes> IVBSAXAttributesDisp;

typedef TComInterface<IVBSAXDTDHandler>  TCOMIVBSAXDTDHandler;

// *********************************************************************//
// DispIntf:  IVBSAXDTDHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {24FB3297-302D-4620-BA39-3A732D850558}
// *********************************************************************//
template<class T>
class IVBSAXDTDHandlerDispT : public TAutoDriver<IVBSAXDTDHandler>
{
public:
  IVBSAXDTDHandlerDispT(){}

  IVBSAXDTDHandlerDispT(IVBSAXDTDHandler *pintf)
  {
    TAutoDriver<IVBSAXDTDHandler>::Bind(pintf, false);
  }

  IVBSAXDTDHandlerDispT(IVBSAXDTDHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXDTDHandler>::Bind(pintf, true);
  }

  IVBSAXDTDHandlerDispT& operator=(IVBSAXDTDHandler *pintf)
  {
    TAutoDriver<IVBSAXDTDHandler>::Bind(pintf, false);
    return *this;
  }

  IVBSAXDTDHandlerDispT& operator=(IVBSAXDTDHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXDTDHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall notationDecl(BSTR* strName/*[in,out]*/, BSTR* strPublicId/*[in,out]*/, 
                                          BSTR* strSystemId/*[in,out]*/);
  HRESULT         __fastcall unparsedEntityDecl(BSTR* strName/*[in,out]*/, 
                                                BSTR* strPublicId/*[in,out]*/, 
                                                BSTR* strSystemId/*[in,out]*/, 
                                                BSTR* strNotationName/*[in,out]*/);

};
typedef IVBSAXDTDHandlerDispT<IVBSAXDTDHandler> IVBSAXDTDHandlerDisp;

typedef TComInterface<IVBSAXErrorHandler>  TCOMIVBSAXErrorHandler;

// *********************************************************************//
// DispIntf:  IVBSAXErrorHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D963D3FE-173C-4862-9095-B92F66995F52}
// *********************************************************************//
template<class T>
class IVBSAXErrorHandlerDispT : public TAutoDriver<IVBSAXErrorHandler>
{
public:
  IVBSAXErrorHandlerDispT(){}

  IVBSAXErrorHandlerDispT(IVBSAXErrorHandler *pintf)
  {
    TAutoDriver<IVBSAXErrorHandler>::Bind(pintf, false);
  }

  IVBSAXErrorHandlerDispT(IVBSAXErrorHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXErrorHandler>::Bind(pintf, true);
  }

  IVBSAXErrorHandlerDispT& operator=(IVBSAXErrorHandler *pintf)
  {
    TAutoDriver<IVBSAXErrorHandler>::Bind(pintf, false);
    return *this;
  }

  IVBSAXErrorHandlerDispT& operator=(IVBSAXErrorHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXErrorHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall error(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                   BSTR* strErrorMessage/*[in,out]*/, long nErrorCode/*[in]*/);
  HRESULT         __fastcall fatalError(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                        BSTR* strErrorMessage/*[in,out]*/, long nErrorCode/*[in]*/);
  HRESULT         __fastcall ignorableWarning(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                              BSTR* strErrorMessage/*[in,out]*/, 
                                              long nErrorCode/*[in]*/);

};
typedef IVBSAXErrorHandlerDispT<IVBSAXErrorHandler> IVBSAXErrorHandlerDisp;

typedef TComInterface<IVBSAXXMLFilter>  TCOMIVBSAXXMLFilter;

// *********************************************************************//
// DispIntf:  IVBSAXXMLFilter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1299EB1B-5B88-433E-82DE-82CA75AD4E04}
// *********************************************************************//
template<class T>
class IVBSAXXMLFilterDispT : public TAutoDriver<IVBSAXXMLFilter>
{
public:
  IVBSAXXMLFilterDispT(){}

  IVBSAXXMLFilterDispT(IVBSAXXMLFilter *pintf)
  {
    TAutoDriver<IVBSAXXMLFilter>::Bind(pintf, false);
  }

  IVBSAXXMLFilterDispT(IVBSAXXMLFilterPtr pintf)
  {
    TAutoDriver<IVBSAXXMLFilter>::Bind(pintf, true);
  }

  IVBSAXXMLFilterDispT& operator=(IVBSAXXMLFilter *pintf)
  {
    TAutoDriver<IVBSAXXMLFilter>::Bind(pintf, false);
    return *this;
  }

  IVBSAXXMLFilterDispT& operator=(IVBSAXXMLFilterPtr pintf)
  {
    TAutoDriver<IVBSAXXMLFilter>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_parent(Msxml2_tlb::IVBSAXXMLReaderPtr* oReader/*[out,retval]*/);
  Msxml2_tlb::IVBSAXXMLReaderPtr __fastcall get_parent(void);
  HRESULT         __fastcall _set_parent(Msxml2_tlb::IVBSAXXMLReaderPtr oReader/*[in]*/);

  __property   Msxml2_tlb::IVBSAXXMLReaderPtr parent = {read = get_parent, write = _set_parent};
};
typedef IVBSAXXMLFilterDispT<IVBSAXXMLFilter> IVBSAXXMLFilterDisp;

typedef TComInterface<IVBSAXLexicalHandler>  TCOMIVBSAXLexicalHandler;

// *********************************************************************//
// DispIntf:  IVBSAXLexicalHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {032AAC35-8C0E-4D9D-979F-E3B702935576}
// *********************************************************************//
template<class T>
class IVBSAXLexicalHandlerDispT : public TAutoDriver<IVBSAXLexicalHandler>
{
public:
  IVBSAXLexicalHandlerDispT(){}

  IVBSAXLexicalHandlerDispT(IVBSAXLexicalHandler *pintf)
  {
    TAutoDriver<IVBSAXLexicalHandler>::Bind(pintf, false);
  }

  IVBSAXLexicalHandlerDispT(IVBSAXLexicalHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXLexicalHandler>::Bind(pintf, true);
  }

  IVBSAXLexicalHandlerDispT& operator=(IVBSAXLexicalHandler *pintf)
  {
    TAutoDriver<IVBSAXLexicalHandler>::Bind(pintf, false);
    return *this;
  }

  IVBSAXLexicalHandlerDispT& operator=(IVBSAXLexicalHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXLexicalHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall startDTD(BSTR* strName/*[in,out]*/, BSTR* strPublicId/*[in,out]*/, 
                                      BSTR* strSystemId/*[in,out]*/);
  HRESULT         __fastcall endDTD();
  HRESULT         __fastcall startEntity(BSTR* strName/*[in,out]*/);
  HRESULT         __fastcall endEntity(BSTR* strName/*[in,out]*/);
  HRESULT         __fastcall startCDATA();
  HRESULT         __fastcall endCDATA();
  HRESULT         __fastcall comment(BSTR* strChars/*[in,out]*/);

};
typedef IVBSAXLexicalHandlerDispT<IVBSAXLexicalHandler> IVBSAXLexicalHandlerDisp;

typedef TComInterface<IVBSAXDeclHandler>  TCOMIVBSAXDeclHandler;

// *********************************************************************//
// DispIntf:  IVBSAXDeclHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E8917260-7579-4BE1-B5DD-7AFBFA6F077B}
// *********************************************************************//
template<class T>
class IVBSAXDeclHandlerDispT : public TAutoDriver<IVBSAXDeclHandler>
{
public:
  IVBSAXDeclHandlerDispT(){}

  IVBSAXDeclHandlerDispT(IVBSAXDeclHandler *pintf)
  {
    TAutoDriver<IVBSAXDeclHandler>::Bind(pintf, false);
  }

  IVBSAXDeclHandlerDispT(IVBSAXDeclHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXDeclHandler>::Bind(pintf, true);
  }

  IVBSAXDeclHandlerDispT& operator=(IVBSAXDeclHandler *pintf)
  {
    TAutoDriver<IVBSAXDeclHandler>::Bind(pintf, false);
    return *this;
  }

  IVBSAXDeclHandlerDispT& operator=(IVBSAXDeclHandlerPtr pintf)
  {
    TAutoDriver<IVBSAXDeclHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall elementDecl(BSTR* strName/*[in,out]*/, BSTR* strModel/*[in,out]*/);
  HRESULT         __fastcall attributeDecl(BSTR* strElementName/*[in,out]*/, 
                                           BSTR* strAttributeName/*[in,out]*/, 
                                           BSTR* strType/*[in,out]*/, 
                                           BSTR* strValueDefault/*[in,out]*/, 
                                           BSTR* strValue/*[in,out]*/);
  HRESULT         __fastcall internalEntityDecl(BSTR* strName/*[in,out]*/, 
                                                BSTR* strValue/*[in,out]*/);
  HRESULT         __fastcall externalEntityDecl(BSTR* strName/*[in,out]*/, 
                                                BSTR* strPublicId/*[in,out]*/, 
                                                BSTR* strSystemId/*[in,out]*/);

};
typedef IVBSAXDeclHandlerDispT<IVBSAXDeclHandler> IVBSAXDeclHandlerDisp;

// *********************************************************************//
// SmartIntf: TCOMIMXWriter
// Interface: IMXWriter
// *********************************************************************//
template <class T /* IMXWriter */ >
class TCOMIMXWriterT : public TComInterface<IMXWriter>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMXWriterT() {}
  TCOMIMXWriterT(IMXWriter *intf, bool addRef = false) : TComInterface<IMXWriter>(intf, addRef) {}
  TCOMIMXWriterT(const TCOMIMXWriterT& src) : TComInterface<IMXWriter>(src) {}
  TCOMIMXWriterT& operator=(const TCOMIMXWriterT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_output(TVariantInParam varDestination/*[in]*/);
  HRESULT         __fastcall get_output(TVariant* varDestination/*[out,retval]*/);
  TVariant        __fastcall get_output(void);
  HRESULT         __fastcall set_encoding(BSTR strEncoding/*[in]*/);
  HRESULT         __fastcall get_encoding(BSTR* strEncoding/*[out,retval]*/);
  BSTR            __fastcall get_encoding(void);
  HRESULT         __fastcall set_byteOrderMark(TOLEBOOL fWriteByteOrderMark/*[in]*/);
  HRESULT         __fastcall get_byteOrderMark(TOLEBOOL* fWriteByteOrderMark/*[out,retval]*/);
  TOLEBOOL        __fastcall get_byteOrderMark(void);
  HRESULT         __fastcall set_indent(TOLEBOOL fIndentMode/*[in]*/);
  HRESULT         __fastcall get_indent(TOLEBOOL* fIndentMode/*[out,retval]*/);
  TOLEBOOL        __fastcall get_indent(void);
  HRESULT         __fastcall set_standalone(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_standalone(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_standalone(void);
  HRESULT         __fastcall set_omitXMLDeclaration(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_omitXMLDeclaration(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_omitXMLDeclaration(void);
  HRESULT         __fastcall set_version(BSTR strVersion/*[in]*/);
  HRESULT         __fastcall get_version(BSTR* strVersion/*[out,retval]*/);
  BSTR            __fastcall get_version(void);
  HRESULT         __fastcall set_disableOutputEscaping(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_disableOutputEscaping(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_disableOutputEscaping(void);
  HRESULT         __fastcall flush(void);

  __property   BSTR            encoding = {read = get_encoding, write = set_encoding};
  __property   TOLEBOOL        byteOrderMark = {read = get_byteOrderMark, write = set_byteOrderMark};
  __property   TOLEBOOL        indent = {read = get_indent, write = set_indent};
  __property   TOLEBOOL        standalone = {read = get_standalone, write = set_standalone};
  __property   TOLEBOOL        omitXMLDeclaration = {read = get_omitXMLDeclaration, write = set_omitXMLDeclaration};
  __property   BSTR            version = {read = get_version, write = set_version};
  __property   TOLEBOOL        disableOutputEscaping = {read = get_disableOutputEscaping, write = set_disableOutputEscaping};
};
typedef TCOMIMXWriterT<IMXWriter> TCOMIMXWriter;

// *********************************************************************//
// DispIntf:  IMXWriter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}
// *********************************************************************//
template<class T>
class IMXWriterDispT : public TAutoDriver<IMXWriter>
{
public:
  IMXWriterDispT(){}

  IMXWriterDispT(IMXWriter *pintf)
  {
    TAutoDriver<IMXWriter>::Bind(pintf, false);
  }

  IMXWriterDispT(IMXWriterPtr pintf)
  {
    TAutoDriver<IMXWriter>::Bind(pintf, true);
  }

  IMXWriterDispT& operator=(IMXWriter *pintf)
  {
    TAutoDriver<IMXWriter>::Bind(pintf, false);
    return *this;
  }

  IMXWriterDispT& operator=(IMXWriterPtr pintf)
  {
    TAutoDriver<IMXWriter>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MXXMLWriter));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MXXMLWriter);
  }

  HRESULT         __fastcall set_output(TVariantInParam varDestination/*[in]*/);
  HRESULT         __fastcall get_output(TVariant* varDestination/*[out,retval]*/);
  TVariant        __fastcall get_output(void);
  HRESULT         __fastcall set_encoding(BSTR strEncoding/*[in]*/);
  HRESULT         __fastcall get_encoding(BSTR* strEncoding/*[out,retval]*/);
  BSTR            __fastcall get_encoding(void);
  HRESULT         __fastcall set_byteOrderMark(TOLEBOOL fWriteByteOrderMark/*[in]*/);
  HRESULT         __fastcall get_byteOrderMark(TOLEBOOL* fWriteByteOrderMark/*[out,retval]*/);
  TOLEBOOL        __fastcall get_byteOrderMark(void);
  HRESULT         __fastcall set_indent(TOLEBOOL fIndentMode/*[in]*/);
  HRESULT         __fastcall get_indent(TOLEBOOL* fIndentMode/*[out,retval]*/);
  TOLEBOOL        __fastcall get_indent(void);
  HRESULT         __fastcall set_standalone(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_standalone(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_standalone(void);
  HRESULT         __fastcall set_omitXMLDeclaration(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_omitXMLDeclaration(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_omitXMLDeclaration(void);
  HRESULT         __fastcall set_version(BSTR strVersion/*[in]*/);
  HRESULT         __fastcall get_version(BSTR* strVersion/*[out,retval]*/);
  BSTR            __fastcall get_version(void);
  HRESULT         __fastcall set_disableOutputEscaping(TOLEBOOL fValue/*[in]*/);
  HRESULT         __fastcall get_disableOutputEscaping(TOLEBOOL* fValue/*[out,retval]*/);
  TOLEBOOL        __fastcall get_disableOutputEscaping(void);
  HRESULT         __fastcall flush();

  __property   BSTR            encoding = {read = get_encoding, write = set_encoding};
  __property   TOLEBOOL        byteOrderMark = {read = get_byteOrderMark, write = set_byteOrderMark};
  __property   TOLEBOOL        indent = {read = get_indent, write = set_indent};
  __property   TOLEBOOL        standalone = {read = get_standalone, write = set_standalone};
  __property   TOLEBOOL        omitXMLDeclaration = {read = get_omitXMLDeclaration, write = set_omitXMLDeclaration};
  __property   BSTR            version = {read = get_version, write = set_version};
  __property   TOLEBOOL        disableOutputEscaping = {read = get_disableOutputEscaping, write = set_disableOutputEscaping};
};
typedef IMXWriterDispT<IMXWriter> IMXWriterDisp;

// *********************************************************************//
// SmartIntf: TCOMIMXAttributes
// Interface: IMXAttributes
// *********************************************************************//
template <class T /* IMXAttributes */ >
class TCOMIMXAttributesT : public TComInterface<IMXAttributes>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIMXAttributesT() {}
  TCOMIMXAttributesT(IMXAttributes *intf, bool addRef = false) : TComInterface<IMXAttributes>(intf, addRef) {}
  TCOMIMXAttributesT(const TCOMIMXAttributesT& src) : TComInterface<IMXAttributes>(src) {}
  TCOMIMXAttributesT& operator=(const TCOMIMXAttributesT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall addAttribute(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                          BSTR strQName/*[in]*/, BSTR strType/*[in]*/, 
                                          BSTR strValue/*[in]*/);
  HRESULT         __fastcall addAttributeFromIndex(TVariantInParam varAtts/*[in]*/, 
                                                   int nIndex/*[in]*/);
  HRESULT         __fastcall clear(void);
  HRESULT         __fastcall removeAttribute(int nIndex/*[in]*/);
  HRESULT         __fastcall setAttribute(int nIndex/*[in]*/, BSTR strURI/*[in]*/, 
                                          BSTR strLocalName/*[in]*/, BSTR strQName/*[in]*/, 
                                          BSTR strType/*[in]*/, BSTR strValue/*[in]*/);
  HRESULT         __fastcall setAttributes(TVariantInParam varAtts/*[in]*/);
  HRESULT         __fastcall setLocalName(int nIndex/*[in]*/, BSTR strLocalName/*[in]*/);
  HRESULT         __fastcall setQName(int nIndex/*[in]*/, BSTR strQName/*[in]*/);
  HRESULT         __fastcall setType(int nIndex/*[in]*/, BSTR strType/*[in]*/);
  HRESULT         __fastcall setURI(int nIndex/*[in]*/, BSTR strURI/*[in]*/);
  HRESULT         __fastcall setValue(int nIndex/*[in]*/, BSTR strValue/*[in]*/);

};
typedef TCOMIMXAttributesT<IMXAttributes> TCOMIMXAttributes;

// *********************************************************************//
// DispIntf:  IMXAttributes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}
// *********************************************************************//
template<class T>
class IMXAttributesDispT : public TAutoDriver<IMXAttributes>
{
public:
  IMXAttributesDispT(){}

  IMXAttributesDispT(IMXAttributes *pintf)
  {
    TAutoDriver<IMXAttributes>::Bind(pintf, false);
  }

  IMXAttributesDispT(IMXAttributesPtr pintf)
  {
    TAutoDriver<IMXAttributes>::Bind(pintf, true);
  }

  IMXAttributesDispT& operator=(IMXAttributes *pintf)
  {
    TAutoDriver<IMXAttributes>::Bind(pintf, false);
    return *this;
  }

  IMXAttributesDispT& operator=(IMXAttributesPtr pintf)
  {
    TAutoDriver<IMXAttributes>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_SAXAttributes));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_SAXAttributes);
  }

  HRESULT         __fastcall addAttribute(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                          BSTR strQName/*[in]*/, BSTR strType/*[in]*/, 
                                          BSTR strValue/*[in]*/);
  HRESULT         __fastcall addAttributeFromIndex(TVariantInParam varAtts/*[in]*/, 
                                                   int nIndex/*[in]*/);
  HRESULT         __fastcall clear();
  HRESULT         __fastcall removeAttribute(int nIndex/*[in]*/);
  HRESULT         __fastcall setAttribute(int nIndex/*[in]*/, BSTR strURI/*[in]*/, 
                                          BSTR strLocalName/*[in]*/, BSTR strQName/*[in]*/, 
                                          BSTR strType/*[in]*/, BSTR strValue/*[in]*/);
  HRESULT         __fastcall setAttributes(TVariantInParam varAtts/*[in]*/);
  HRESULT         __fastcall setLocalName(int nIndex/*[in]*/, BSTR strLocalName/*[in]*/);
  HRESULT         __fastcall setQName(int nIndex/*[in]*/, BSTR strQName/*[in]*/);
  HRESULT         __fastcall setType(int nIndex/*[in]*/, BSTR strType/*[in]*/);
  HRESULT         __fastcall setURI(int nIndex/*[in]*/, BSTR strURI/*[in]*/);
  HRESULT         __fastcall setValue(int nIndex/*[in]*/, BSTR strValue/*[in]*/);

};
typedef IMXAttributesDispT<IMXAttributes> IMXAttributesDisp;

typedef TComInterface<IMXReaderControl>  TCOMIMXReaderControl;

// *********************************************************************//
// DispIntf:  IMXReaderControl
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {808F4E35-8D5A-4FBE-8466-33A41279ED30}
// *********************************************************************//
template<class T>
class IMXReaderControlDispT : public TAutoDriver<IMXReaderControl>
{
public:
  IMXReaderControlDispT(){}

  IMXReaderControlDispT(IMXReaderControl *pintf)
  {
    TAutoDriver<IMXReaderControl>::Bind(pintf, false);
  }

  IMXReaderControlDispT(IMXReaderControlPtr pintf)
  {
    TAutoDriver<IMXReaderControl>::Bind(pintf, true);
  }

  IMXReaderControlDispT& operator=(IMXReaderControl *pintf)
  {
    TAutoDriver<IMXReaderControl>::Bind(pintf, false);
    return *this;
  }

  IMXReaderControlDispT& operator=(IMXReaderControlPtr pintf)
  {
    TAutoDriver<IMXReaderControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall abort();
  HRESULT         __fastcall resume();
  HRESULT         __fastcall suspend();

};
typedef IMXReaderControlDispT<IMXReaderControl> IMXReaderControlDisp;

typedef TComInterface<IMXSchemaDeclHandler>  TCOMIMXSchemaDeclHandler;

// *********************************************************************//
// DispIntf:  IMXSchemaDeclHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}
// *********************************************************************//
template<class T>
class IMXSchemaDeclHandlerDispT : public TAutoDriver<IMXSchemaDeclHandler>
{
public:
  IMXSchemaDeclHandlerDispT(){}

  IMXSchemaDeclHandlerDispT(IMXSchemaDeclHandler *pintf)
  {
    TAutoDriver<IMXSchemaDeclHandler>::Bind(pintf, false);
  }

  IMXSchemaDeclHandlerDispT(IMXSchemaDeclHandlerPtr pintf)
  {
    TAutoDriver<IMXSchemaDeclHandler>::Bind(pintf, true);
  }

  IMXSchemaDeclHandlerDispT& operator=(IMXSchemaDeclHandler *pintf)
  {
    TAutoDriver<IMXSchemaDeclHandler>::Bind(pintf, false);
    return *this;
  }

  IMXSchemaDeclHandlerDispT& operator=(IMXSchemaDeclHandlerPtr pintf)
  {
    TAutoDriver<IMXSchemaDeclHandler>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall schemaElementDecl(Msxml2_tlb::ISchemaElementPtr oSchemaElement/*[in]*/);

};
typedef IMXSchemaDeclHandlerDispT<IMXSchemaDeclHandler> IMXSchemaDeclHandlerDisp;

typedef TComInterface<ISchemaItem>  TCOMISchemaItem;

// *********************************************************************//
// DispIntf:  ISchemaItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaItemDispT : public TAutoDriver<ISchemaItem>
{
public:
  ISchemaItemDispT(){}

  ISchemaItemDispT(ISchemaItem *pintf)
  {
    TAutoDriver<ISchemaItem>::Bind(pintf, false);
  }

  ISchemaItemDispT(ISchemaItemPtr pintf)
  {
    TAutoDriver<ISchemaItem>::Bind(pintf, true);
  }

  ISchemaItemDispT& operator=(ISchemaItem *pintf)
  {
    TAutoDriver<ISchemaItem>::Bind(pintf, false);
    return *this;
  }

  ISchemaItemDispT& operator=(ISchemaItemPtr pintf)
  {
    TAutoDriver<ISchemaItem>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaItemDispT<ISchemaItem> ISchemaItemDisp;

typedef TComInterface<ISchemaParticle>  TCOMISchemaParticle;

// *********************************************************************//
// DispIntf:  ISchemaParticle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaParticleDispT : public TAutoDriver<ISchemaParticle>
{
public:
  ISchemaParticleDispT(){}

  ISchemaParticleDispT(ISchemaParticle *pintf)
  {
    TAutoDriver<ISchemaParticle>::Bind(pintf, false);
  }

  ISchemaParticleDispT(ISchemaParticlePtr pintf)
  {
    TAutoDriver<ISchemaParticle>::Bind(pintf, true);
  }

  ISchemaParticleDispT& operator=(ISchemaParticle *pintf)
  {
    TAutoDriver<ISchemaParticle>::Bind(pintf, false);
    return *this;
  }

  ISchemaParticleDispT& operator=(ISchemaParticlePtr pintf)
  {
    TAutoDriver<ISchemaParticle>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_minOccurs(TVariant* minOccurs/*[out,retval]*/);
  TVariant        __fastcall get_minOccurs(void);
  HRESULT         __fastcall get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/);
  TVariant        __fastcall get_maxOccurs(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);


  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaParticleDispT<ISchemaParticle> ISchemaParticleDisp;

typedef TComInterface<ISchemaElement>  TCOMISchemaElement;

// *********************************************************************//
// DispIntf:  ISchemaElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaElementDispT : public TAutoDriver<ISchemaElement>
{
public:
  ISchemaElementDispT(){}

  ISchemaElementDispT(ISchemaElement *pintf)
  {
    TAutoDriver<ISchemaElement>::Bind(pintf, false);
  }

  ISchemaElementDispT(ISchemaElementPtr pintf)
  {
    TAutoDriver<ISchemaElement>::Bind(pintf, true);
  }

  ISchemaElementDispT& operator=(ISchemaElement *pintf)
  {
    TAutoDriver<ISchemaElement>::Bind(pintf, false);
    return *this;
  }

  ISchemaElementDispT& operator=(ISchemaElementPtr pintf)
  {
    TAutoDriver<ISchemaElement>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/);
  Msxml2_tlb::ISchemaTypePtr __fastcall get_type(void);
  HRESULT         __fastcall get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/);
  Msxml2_tlb::ISchemaComplexTypePtr __fastcall get_scope(void);
  HRESULT         __fastcall get_defaultValue(BSTR* defaultValue/*[out,retval]*/);
  BSTR            __fastcall get_defaultValue(void);
  HRESULT         __fastcall get_fixedValue(BSTR* fixedValue/*[out,retval]*/);
  BSTR            __fastcall get_fixedValue(void);
  HRESULT         __fastcall get_isNillable(TOLEBOOL* nillable/*[out,retval]*/);
  TOLEBOOL        __fastcall get_isNillable(void);
  HRESULT         __fastcall get_identityConstraints(Msxml2_tlb::ISchemaItemCollectionPtr* constraints/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_identityConstraints(void);
  HRESULT         __fastcall get_substitutionGroup(Msxml2_tlb::ISchemaElementPtr* element/*[out,retval]*/);
  Msxml2_tlb::ISchemaElementPtr __fastcall get_substitutionGroup(void);
  HRESULT         __fastcall get_substitutionGroupExclusions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* exclusions/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_substitutionGroupExclusions(void);
  HRESULT         __fastcall get_disallowedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* disallowed/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_disallowedSubstitutions(void);
  HRESULT         __fastcall get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/);
  TOLEBOOL        __fastcall get_isAbstract(void);
  HRESULT         __fastcall get_isReference(TOLEBOOL* reference/*[out,retval]*/);
  TOLEBOOL        __fastcall get_isReference(void);
  HRESULT         __fastcall get_minOccurs(TVariant* minOccurs/*[out,retval]*/);
  TVariant        __fastcall get_minOccurs(void);
  HRESULT         __fastcall get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/);
  TVariant        __fastcall get_maxOccurs(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaTypePtr type = {read = get_type};
  __property   Msxml2_tlb::ISchemaComplexTypePtr scope = {read = get_scope};
  __property   BSTR            defaultValue = {read = get_defaultValue};
  __property   BSTR            fixedValue = {read = get_fixedValue};
  __property   TOLEBOOL        isNillable = {read = get_isNillable};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr identityConstraints = {read = get_identityConstraints};
  __property   Msxml2_tlb::ISchemaElementPtr substitutionGroup = {read = get_substitutionGroup};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD substitutionGroupExclusions = {read = get_substitutionGroupExclusions};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD disallowedSubstitutions = {read = get_disallowedSubstitutions};
  __property   TOLEBOOL        isAbstract = {read = get_isAbstract};
  __property   TOLEBOOL        isReference = {read = get_isReference};


  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaElementDispT<ISchemaElement> ISchemaElementDisp;

typedef TComInterface<ISchema>  TCOMISchema;

// *********************************************************************//
// DispIntf:  ISchema
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaDispT : public TAutoDriver<ISchema>
{
public:
  ISchemaDispT(){}

  ISchemaDispT(ISchema *pintf)
  {
    TAutoDriver<ISchema>::Bind(pintf, false);
  }

  ISchemaDispT(ISchemaPtr pintf)
  {
    TAutoDriver<ISchema>::Bind(pintf, true);
  }

  ISchemaDispT& operator=(ISchema *pintf)
  {
    TAutoDriver<ISchema>::Bind(pintf, false);
    return *this;
  }

  ISchemaDispT& operator=(ISchemaPtr pintf)
  {
    TAutoDriver<ISchema>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_targetNamespace(BSTR* targetNamespace/*[out,retval]*/);
  BSTR            __fastcall get_targetNamespace(void);
  HRESULT         __fastcall get_version(BSTR* version/*[out,retval]*/);
  BSTR            __fastcall get_version(void);
  HRESULT         __fastcall get_types(Msxml2_tlb::ISchemaItemCollectionPtr* types/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_types(void);
  HRESULT         __fastcall get_elements(Msxml2_tlb::ISchemaItemCollectionPtr* elements/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_elements(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void);
  HRESULT         __fastcall get_attributeGroups(Msxml2_tlb::ISchemaItemCollectionPtr* attributeGroups/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributeGroups(void);
  HRESULT         __fastcall get_modelGroups(Msxml2_tlb::ISchemaItemCollectionPtr* modelGroups/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_modelGroups(void);
  HRESULT         __fastcall get_notations(Msxml2_tlb::ISchemaItemCollectionPtr* notations/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_notations(void);
  HRESULT         __fastcall get_schemaLocations(Msxml2_tlb::ISchemaStringCollectionPtr* schemaLocations/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_schemaLocations(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   BSTR            targetNamespace = {read = get_targetNamespace};
  __property   BSTR            version = {read = get_version};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr types = {read = get_types};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr elements = {read = get_elements};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributeGroups = {read = get_attributeGroups};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr modelGroups = {read = get_modelGroups};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr notations = {read = get_notations};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr schemaLocations = {read = get_schemaLocations};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaDispT<ISchema> ISchemaDisp;

typedef TComInterface<ISchemaItemCollection>  TCOMISchemaItemCollection;

// *********************************************************************//
// DispIntf:  ISchemaItemCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaItemCollectionDispT : public TAutoDriver<ISchemaItemCollection>
{
public:
  ISchemaItemCollectionDispT(){}

  ISchemaItemCollectionDispT(ISchemaItemCollection *pintf)
  {
    TAutoDriver<ISchemaItemCollection>::Bind(pintf, false);
  }

  ISchemaItemCollectionDispT(ISchemaItemCollectionPtr pintf)
  {
    TAutoDriver<ISchemaItemCollection>::Bind(pintf, true);
  }

  ISchemaItemCollectionDispT& operator=(ISchemaItemCollection *pintf)
  {
    TAutoDriver<ISchemaItemCollection>::Bind(pintf, false);
    return *this;
  }

  ISchemaItemCollectionDispT& operator=(ISchemaItemCollectionPtr pintf)
  {
    TAutoDriver<ISchemaItemCollection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_item(long index/*[in]*/, 
                                      Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemPtr __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall itemByName(BSTR name/*[in]*/, 
                                        Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemPtr __fastcall itemByName(BSTR name/*[in]*/);
  HRESULT         __fastcall itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                         Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemPtr __fastcall itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef ISchemaItemCollectionDispT<ISchemaItemCollection> ISchemaItemCollectionDisp;

typedef TComInterface<ISchemaStringCollection>  TCOMISchemaStringCollection;

// *********************************************************************//
// DispIntf:  ISchemaStringCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaStringCollectionDispT : public TAutoDriver<ISchemaStringCollection>
{
public:
  ISchemaStringCollectionDispT(){}

  ISchemaStringCollectionDispT(ISchemaStringCollection *pintf)
  {
    TAutoDriver<ISchemaStringCollection>::Bind(pintf, false);
  }

  ISchemaStringCollectionDispT(ISchemaStringCollectionPtr pintf)
  {
    TAutoDriver<ISchemaStringCollection>::Bind(pintf, true);
  }

  ISchemaStringCollectionDispT& operator=(ISchemaStringCollection *pintf)
  {
    TAutoDriver<ISchemaStringCollection>::Bind(pintf, false);
    return *this;
  }

  ISchemaStringCollectionDispT& operator=(ISchemaStringCollectionPtr pintf)
  {
    TAutoDriver<ISchemaStringCollection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_item(long index/*[in]*/, BSTR* bstr/*[out,retval]*/);
  BSTR            __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef ISchemaStringCollectionDispT<ISchemaStringCollection> ISchemaStringCollectionDisp;

typedef TComInterface<ISchemaType>  TCOMISchemaType;

// *********************************************************************//
// DispIntf:  ISchemaType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaTypeDispT : public TAutoDriver<ISchemaType>
{
public:
  ISchemaTypeDispT(){}

  ISchemaTypeDispT(ISchemaType *pintf)
  {
    TAutoDriver<ISchemaType>::Bind(pintf, false);
  }

  ISchemaTypeDispT(ISchemaTypePtr pintf)
  {
    TAutoDriver<ISchemaType>::Bind(pintf, true);
  }

  ISchemaTypeDispT& operator=(ISchemaType *pintf)
  {
    TAutoDriver<ISchemaType>::Bind(pintf, false);
    return *this;
  }

  ISchemaTypeDispT& operator=(ISchemaTypePtr pintf)
  {
    TAutoDriver<ISchemaType>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_baseTypes(Msxml2_tlb::ISchemaItemCollectionPtr* baseTypes/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_baseTypes(void);
  HRESULT         __fastcall get_final(Msxml2_tlb::SCHEMADERIVATIONMETHOD* final/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_final(void);
  HRESULT         __fastcall get_variety(Msxml2_tlb::SCHEMATYPEVARIETY* variety/*[out,retval]*/);
  Msxml2_tlb::SCHEMATYPEVARIETY __fastcall get_variety(void);
  HRESULT         __fastcall get_derivedBy(Msxml2_tlb::SCHEMADERIVATIONMETHOD* derivedBy/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_derivedBy(void);
  HRESULT         __fastcall isValid(BSTR data/*[in]*/, TOLEBOOL* valid/*[out,retval]*/);
  TOLEBOOL        __fastcall isValid(BSTR data/*[in]*/);
  HRESULT         __fastcall get_minExclusive(BSTR* minExclusive/*[out,retval]*/);
  BSTR            __fastcall get_minExclusive(void);
  HRESULT         __fastcall get_minInclusive(BSTR* minInclusive/*[out,retval]*/);
  BSTR            __fastcall get_minInclusive(void);
  HRESULT         __fastcall get_maxExclusive(BSTR* maxExclusive/*[out,retval]*/);
  BSTR            __fastcall get_maxExclusive(void);
  HRESULT         __fastcall get_maxInclusive(BSTR* maxInclusive/*[out,retval]*/);
  BSTR            __fastcall get_maxInclusive(void);
  HRESULT         __fastcall get_totalDigits(TVariant* totalDigits/*[out,retval]*/);
  TVariant        __fastcall get_totalDigits(void);
  HRESULT         __fastcall get_fractionDigits(TVariant* fractionDigits/*[out,retval]*/);
  TVariant        __fastcall get_fractionDigits(void);
  HRESULT         __fastcall get_length(TVariant* length/*[out,retval]*/);
  TVariant        __fastcall get_length(void);
  HRESULT         __fastcall get_minLength(TVariant* minLength/*[out,retval]*/);
  TVariant        __fastcall get_minLength(void);
  HRESULT         __fastcall get_maxLength(TVariant* maxLength/*[out,retval]*/);
  TVariant        __fastcall get_maxLength(void);
  HRESULT         __fastcall get_enumeration(Msxml2_tlb::ISchemaStringCollectionPtr* enumeration/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_enumeration(void);
  HRESULT         __fastcall get_whitespace(Msxml2_tlb::SCHEMAWHITESPACE* whitespace/*[out,retval]*/);
  Msxml2_tlb::SCHEMAWHITESPACE __fastcall get_whitespace(void);
  HRESULT         __fastcall get_patterns(Msxml2_tlb::ISchemaStringCollectionPtr* patterns/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_patterns(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaItemCollectionPtr baseTypes = {read = get_baseTypes};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD final = {read = get_final};
  __property   Msxml2_tlb::SCHEMATYPEVARIETY variety = {read = get_variety};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy = {read = get_derivedBy};
  __property   BSTR            minExclusive = {read = get_minExclusive};
  __property   BSTR            minInclusive = {read = get_minInclusive};
  __property   BSTR            maxExclusive = {read = get_maxExclusive};
  __property   BSTR            maxInclusive = {read = get_maxInclusive};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr enumeration = {read = get_enumeration};
  __property   Msxml2_tlb::SCHEMAWHITESPACE whitespace = {read = get_whitespace};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr patterns = {read = get_patterns};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaTypeDispT<ISchemaType> ISchemaTypeDisp;

typedef TComInterface<ISchemaComplexType>  TCOMISchemaComplexType;

// *********************************************************************//
// DispIntf:  ISchemaComplexType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaComplexTypeDispT : public TAutoDriver<ISchemaComplexType>
{
public:
  ISchemaComplexTypeDispT(){}

  ISchemaComplexTypeDispT(ISchemaComplexType *pintf)
  {
    TAutoDriver<ISchemaComplexType>::Bind(pintf, false);
  }

  ISchemaComplexTypeDispT(ISchemaComplexTypePtr pintf)
  {
    TAutoDriver<ISchemaComplexType>::Bind(pintf, true);
  }

  ISchemaComplexTypeDispT& operator=(ISchemaComplexType *pintf)
  {
    TAutoDriver<ISchemaComplexType>::Bind(pintf, false);
    return *this;
  }

  ISchemaComplexTypeDispT& operator=(ISchemaComplexTypePtr pintf)
  {
    TAutoDriver<ISchemaComplexType>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/);
  TOLEBOOL        __fastcall get_isAbstract(void);
  HRESULT         __fastcall get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/);
  Msxml2_tlb::ISchemaAnyPtr __fastcall get_anyAttribute(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void);
  HRESULT         __fastcall get_contentType(Msxml2_tlb::SCHEMACONTENTTYPE* contentType/*[out,retval]*/);
  Msxml2_tlb::SCHEMACONTENTTYPE __fastcall get_contentType(void);
  HRESULT         __fastcall get_contentModel(Msxml2_tlb::ISchemaModelGroupPtr* contentModel/*[out,retval]*/);
  Msxml2_tlb::ISchemaModelGroupPtr __fastcall get_contentModel(void);
  HRESULT         __fastcall get_prohibitedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* prohibited/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_prohibitedSubstitutions(void);
  HRESULT         __fastcall get_baseTypes(Msxml2_tlb::ISchemaItemCollectionPtr* baseTypes/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_baseTypes(void);
  HRESULT         __fastcall get_final(Msxml2_tlb::SCHEMADERIVATIONMETHOD* final/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_final(void);
  HRESULT         __fastcall get_variety(Msxml2_tlb::SCHEMATYPEVARIETY* variety/*[out,retval]*/);
  Msxml2_tlb::SCHEMATYPEVARIETY __fastcall get_variety(void);
  HRESULT         __fastcall get_derivedBy(Msxml2_tlb::SCHEMADERIVATIONMETHOD* derivedBy/*[out,retval]*/);
  Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall get_derivedBy(void);
  HRESULT         __fastcall isValid(BSTR data/*[in]*/, TOLEBOOL* valid/*[out,retval]*/);
  TOLEBOOL        __fastcall isValid(BSTR data/*[in]*/);
  HRESULT         __fastcall get_minExclusive(BSTR* minExclusive/*[out,retval]*/);
  BSTR            __fastcall get_minExclusive(void);
  HRESULT         __fastcall get_minInclusive(BSTR* minInclusive/*[out,retval]*/);
  BSTR            __fastcall get_minInclusive(void);
  HRESULT         __fastcall get_maxExclusive(BSTR* maxExclusive/*[out,retval]*/);
  BSTR            __fastcall get_maxExclusive(void);
  HRESULT         __fastcall get_maxInclusive(BSTR* maxInclusive/*[out,retval]*/);
  BSTR            __fastcall get_maxInclusive(void);
  HRESULT         __fastcall get_totalDigits(TVariant* totalDigits/*[out,retval]*/);
  TVariant        __fastcall get_totalDigits(void);
  HRESULT         __fastcall get_fractionDigits(TVariant* fractionDigits/*[out,retval]*/);
  TVariant        __fastcall get_fractionDigits(void);
  HRESULT         __fastcall get_length(TVariant* length/*[out,retval]*/);
  TVariant        __fastcall get_length(void);
  HRESULT         __fastcall get_minLength(TVariant* minLength/*[out,retval]*/);
  TVariant        __fastcall get_minLength(void);
  HRESULT         __fastcall get_maxLength(TVariant* maxLength/*[out,retval]*/);
  TVariant        __fastcall get_maxLength(void);
  HRESULT         __fastcall get_enumeration(Msxml2_tlb::ISchemaStringCollectionPtr* enumeration/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_enumeration(void);
  HRESULT         __fastcall get_whitespace(Msxml2_tlb::SCHEMAWHITESPACE* whitespace/*[out,retval]*/);
  Msxml2_tlb::SCHEMAWHITESPACE __fastcall get_whitespace(void);
  HRESULT         __fastcall get_patterns(Msxml2_tlb::ISchemaStringCollectionPtr* patterns/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_patterns(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   TOLEBOOL        isAbstract = {read = get_isAbstract};
  __property   Msxml2_tlb::ISchemaAnyPtr anyAttribute = {read = get_anyAttribute};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};
  __property   Msxml2_tlb::SCHEMACONTENTTYPE contentType = {read = get_contentType};
  __property   Msxml2_tlb::ISchemaModelGroupPtr contentModel = {read = get_contentModel};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD prohibitedSubstitutions = {read = get_prohibitedSubstitutions};

  __property   Msxml2_tlb::ISchemaItemCollectionPtr baseTypes = {read = get_baseTypes};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD final = {read = get_final};
  __property   Msxml2_tlb::SCHEMATYPEVARIETY variety = {read = get_variety};
  __property   Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy = {read = get_derivedBy};
  __property   BSTR            minExclusive = {read = get_minExclusive};
  __property   BSTR            minInclusive = {read = get_minInclusive};
  __property   BSTR            maxExclusive = {read = get_maxExclusive};
  __property   BSTR            maxInclusive = {read = get_maxInclusive};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr enumeration = {read = get_enumeration};
  __property   Msxml2_tlb::SCHEMAWHITESPACE whitespace = {read = get_whitespace};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr patterns = {read = get_patterns};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaComplexTypeDispT<ISchemaComplexType> ISchemaComplexTypeDisp;

typedef TComInterface<ISchemaAny>  TCOMISchemaAny;

// *********************************************************************//
// DispIntf:  ISchemaAny
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaAnyDispT : public TAutoDriver<ISchemaAny>
{
public:
  ISchemaAnyDispT(){}

  ISchemaAnyDispT(ISchemaAny *pintf)
  {
    TAutoDriver<ISchemaAny>::Bind(pintf, false);
  }

  ISchemaAnyDispT(ISchemaAnyPtr pintf)
  {
    TAutoDriver<ISchemaAny>::Bind(pintf, true);
  }

  ISchemaAnyDispT& operator=(ISchemaAny *pintf)
  {
    TAutoDriver<ISchemaAny>::Bind(pintf, false);
    return *this;
  }

  ISchemaAnyDispT& operator=(ISchemaAnyPtr pintf)
  {
    TAutoDriver<ISchemaAny>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_namespaces(Msxml2_tlb::ISchemaStringCollectionPtr* namespaces/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_namespaces(void);
  HRESULT         __fastcall get_processContents(Msxml2_tlb::SCHEMAPROCESSCONTENTS* processContents/*[out,retval]*/);
  Msxml2_tlb::SCHEMAPROCESSCONTENTS __fastcall get_processContents(void);
  HRESULT         __fastcall get_minOccurs(TVariant* minOccurs/*[out,retval]*/);
  TVariant        __fastcall get_minOccurs(void);
  HRESULT         __fastcall get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/);
  TVariant        __fastcall get_maxOccurs(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaStringCollectionPtr namespaces = {read = get_namespaces};
  __property   Msxml2_tlb::SCHEMAPROCESSCONTENTS processContents = {read = get_processContents};


  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaAnyDispT<ISchemaAny> ISchemaAnyDisp;

typedef TComInterface<ISchemaModelGroup>  TCOMISchemaModelGroup;

// *********************************************************************//
// DispIntf:  ISchemaModelGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaModelGroupDispT : public TAutoDriver<ISchemaModelGroup>
{
public:
  ISchemaModelGroupDispT(){}

  ISchemaModelGroupDispT(ISchemaModelGroup *pintf)
  {
    TAutoDriver<ISchemaModelGroup>::Bind(pintf, false);
  }

  ISchemaModelGroupDispT(ISchemaModelGroupPtr pintf)
  {
    TAutoDriver<ISchemaModelGroup>::Bind(pintf, true);
  }

  ISchemaModelGroupDispT& operator=(ISchemaModelGroup *pintf)
  {
    TAutoDriver<ISchemaModelGroup>::Bind(pintf, false);
    return *this;
  }

  ISchemaModelGroupDispT& operator=(ISchemaModelGroupPtr pintf)
  {
    TAutoDriver<ISchemaModelGroup>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_particles(Msxml2_tlb::ISchemaItemCollectionPtr* particles/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_particles(void);
  HRESULT         __fastcall get_minOccurs(TVariant* minOccurs/*[out,retval]*/);
  TVariant        __fastcall get_minOccurs(void);
  HRESULT         __fastcall get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/);
  TVariant        __fastcall get_maxOccurs(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaItemCollectionPtr particles = {read = get_particles};


  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaModelGroupDispT<ISchemaModelGroup> ISchemaModelGroupDisp;

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMSchemaCollection2
// Interface: IXMLDOMSchemaCollection2
// *********************************************************************//
template <class T /* IXMLDOMSchemaCollection2 */ >
class TCOMIXMLDOMSchemaCollection2T : public TComInterface<IXMLDOMSchemaCollection2>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIXMLDOMSchemaCollection2T() {}
  TCOMIXMLDOMSchemaCollection2T(IXMLDOMSchemaCollection2 *intf, bool addRef = false) : TComInterface<IXMLDOMSchemaCollection2>(intf, addRef) {}
  TCOMIXMLDOMSchemaCollection2T(const TCOMIXMLDOMSchemaCollection2T& src) : TComInterface<IXMLDOMSchemaCollection2>(src) {}
  TCOMIXMLDOMSchemaCollection2T& operator=(const TCOMIXMLDOMSchemaCollection2T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall validate(void);
  HRESULT         __fastcall set_validateOnLoad(TOLEBOOL validateOnLoad/*[in]*/);
  HRESULT         __fastcall get_validateOnLoad(TOLEBOOL* validateOnLoad/*[out,retval]*/);
  TOLEBOOL        __fastcall get_validateOnLoad(void);
  HRESULT         __fastcall getSchema(BSTR namespaceURI/*[in]*/, 
                                       Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall getSchema(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/, 
                                            Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemPtr __fastcall getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/);

  __property   TOLEBOOL        validateOnLoad = {read = get_validateOnLoad, write = set_validateOnLoad};
};
typedef TCOMIXMLDOMSchemaCollection2T<IXMLDOMSchemaCollection2> TCOMIXMLDOMSchemaCollection2;

// *********************************************************************//
// DispIntf:  IXMLDOMSchemaCollection2
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class IXMLDOMSchemaCollection2DispT : public TAutoDriver<IXMLDOMSchemaCollection2>
{
public:
  IXMLDOMSchemaCollection2DispT(){}

  IXMLDOMSchemaCollection2DispT(IXMLDOMSchemaCollection2 *pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection2>::Bind(pintf, false);
  }

  IXMLDOMSchemaCollection2DispT(IXMLDOMSchemaCollection2Ptr pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection2>::Bind(pintf, true);
  }

  IXMLDOMSchemaCollection2DispT& operator=(IXMLDOMSchemaCollection2 *pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection2>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMSchemaCollection2DispT& operator=(IXMLDOMSchemaCollection2Ptr pintf)
  {
    TAutoDriver<IXMLDOMSchemaCollection2>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_XMLSchemaCache40));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_XMLSchemaCache40);
  }

  HRESULT         __fastcall validate();
  HRESULT         __fastcall set_validateOnLoad(TOLEBOOL validateOnLoad/*[in]*/);
  HRESULT         __fastcall get_validateOnLoad(TOLEBOOL* validateOnLoad/*[out,retval]*/);
  TOLEBOOL        __fastcall get_validateOnLoad(void);
  HRESULT         __fastcall getSchema(BSTR namespaceURI/*[in]*/, 
                                       Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall getSchema(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/, 
                                            Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemPtr __fastcall getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/);
  HRESULT         __fastcall add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/);
  HRESULT         __fastcall get(BSTR namespaceURI/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall remove(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(long index/*[in]*/);
  HRESULT         __fastcall addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   TOLEBOOL        validateOnLoad = {read = get_validateOnLoad, write = set_validateOnLoad};

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLDOMSchemaCollection2DispT<IXMLDOMSchemaCollection2> IXMLDOMSchemaCollection2Disp;

typedef TComInterface<ISchemaAttribute>  TCOMISchemaAttribute;

// *********************************************************************//
// DispIntf:  ISchemaAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaAttributeDispT : public TAutoDriver<ISchemaAttribute>
{
public:
  ISchemaAttributeDispT(){}

  ISchemaAttributeDispT(ISchemaAttribute *pintf)
  {
    TAutoDriver<ISchemaAttribute>::Bind(pintf, false);
  }

  ISchemaAttributeDispT(ISchemaAttributePtr pintf)
  {
    TAutoDriver<ISchemaAttribute>::Bind(pintf, true);
  }

  ISchemaAttributeDispT& operator=(ISchemaAttribute *pintf)
  {
    TAutoDriver<ISchemaAttribute>::Bind(pintf, false);
    return *this;
  }

  ISchemaAttributeDispT& operator=(ISchemaAttributePtr pintf)
  {
    TAutoDriver<ISchemaAttribute>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/);
  Msxml2_tlb::ISchemaTypePtr __fastcall get_type(void);
  HRESULT         __fastcall get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/);
  Msxml2_tlb::ISchemaComplexTypePtr __fastcall get_scope(void);
  HRESULT         __fastcall get_defaultValue(BSTR* defaultValue/*[out,retval]*/);
  BSTR            __fastcall get_defaultValue(void);
  HRESULT         __fastcall get_fixedValue(BSTR* fixedValue/*[out,retval]*/);
  BSTR            __fastcall get_fixedValue(void);
  HRESULT         __fastcall get_use(Msxml2_tlb::SCHEMAUSE* use/*[out,retval]*/);
  Msxml2_tlb::SCHEMAUSE __fastcall get_use(void);
  HRESULT         __fastcall get_isReference(TOLEBOOL* reference/*[out,retval]*/);
  TOLEBOOL        __fastcall get_isReference(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaTypePtr type = {read = get_type};
  __property   Msxml2_tlb::ISchemaComplexTypePtr scope = {read = get_scope};
  __property   BSTR            defaultValue = {read = get_defaultValue};
  __property   BSTR            fixedValue = {read = get_fixedValue};
  __property   Msxml2_tlb::SCHEMAUSE use = {read = get_use};
  __property   TOLEBOOL        isReference = {read = get_isReference};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaAttributeDispT<ISchemaAttribute> ISchemaAttributeDisp;

typedef TComInterface<ISchemaAttributeGroup>  TCOMISchemaAttributeGroup;

// *********************************************************************//
// DispIntf:  ISchemaAttributeGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaAttributeGroupDispT : public TAutoDriver<ISchemaAttributeGroup>
{
public:
  ISchemaAttributeGroupDispT(){}

  ISchemaAttributeGroupDispT(ISchemaAttributeGroup *pintf)
  {
    TAutoDriver<ISchemaAttributeGroup>::Bind(pintf, false);
  }

  ISchemaAttributeGroupDispT(ISchemaAttributeGroupPtr pintf)
  {
    TAutoDriver<ISchemaAttributeGroup>::Bind(pintf, true);
  }

  ISchemaAttributeGroupDispT& operator=(ISchemaAttributeGroup *pintf)
  {
    TAutoDriver<ISchemaAttributeGroup>::Bind(pintf, false);
    return *this;
  }

  ISchemaAttributeGroupDispT& operator=(ISchemaAttributeGroupPtr pintf)
  {
    TAutoDriver<ISchemaAttributeGroup>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/);
  Msxml2_tlb::ISchemaAnyPtr __fastcall get_anyAttribute(void);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::ISchemaItemCollectionPtr __fastcall get_attributes(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   Msxml2_tlb::ISchemaAnyPtr anyAttribute = {read = get_anyAttribute};
  __property   Msxml2_tlb::ISchemaItemCollectionPtr attributes = {read = get_attributes};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaAttributeGroupDispT<ISchemaAttributeGroup> ISchemaAttributeGroupDisp;

typedef TComInterface<ISchemaIdentityConstraint>  TCOMISchemaIdentityConstraint;

// *********************************************************************//
// DispIntf:  ISchemaIdentityConstraint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaIdentityConstraintDispT : public TAutoDriver<ISchemaIdentityConstraint>
{
public:
  ISchemaIdentityConstraintDispT(){}

  ISchemaIdentityConstraintDispT(ISchemaIdentityConstraint *pintf)
  {
    TAutoDriver<ISchemaIdentityConstraint>::Bind(pintf, false);
  }

  ISchemaIdentityConstraintDispT(ISchemaIdentityConstraintPtr pintf)
  {
    TAutoDriver<ISchemaIdentityConstraint>::Bind(pintf, true);
  }

  ISchemaIdentityConstraintDispT& operator=(ISchemaIdentityConstraint *pintf)
  {
    TAutoDriver<ISchemaIdentityConstraint>::Bind(pintf, false);
    return *this;
  }

  ISchemaIdentityConstraintDispT& operator=(ISchemaIdentityConstraintPtr pintf)
  {
    TAutoDriver<ISchemaIdentityConstraint>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_selector(BSTR* selector/*[out,retval]*/);
  BSTR            __fastcall get_selector(void);
  HRESULT         __fastcall get_fields(Msxml2_tlb::ISchemaStringCollectionPtr* fields/*[out,retval]*/);
  Msxml2_tlb::ISchemaStringCollectionPtr __fastcall get_fields(void);
  HRESULT         __fastcall get_referencedKey(Msxml2_tlb::ISchemaIdentityConstraintPtr* key/*[out,retval]*/);
  Msxml2_tlb::ISchemaIdentityConstraintPtr __fastcall get_referencedKey(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   BSTR            selector = {read = get_selector};
  __property   Msxml2_tlb::ISchemaStringCollectionPtr fields = {read = get_fields};
  __property   Msxml2_tlb::ISchemaIdentityConstraintPtr referencedKey = {read = get_referencedKey};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaIdentityConstraintDispT<ISchemaIdentityConstraint> ISchemaIdentityConstraintDisp;

typedef TComInterface<ISchemaNotation>  TCOMISchemaNotation;

// *********************************************************************//
// DispIntf:  ISchemaNotation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template<class T>
class ISchemaNotationDispT : public TAutoDriver<ISchemaNotation>
{
public:
  ISchemaNotationDispT(){}

  ISchemaNotationDispT(ISchemaNotation *pintf)
  {
    TAutoDriver<ISchemaNotation>::Bind(pintf, false);
  }

  ISchemaNotationDispT(ISchemaNotationPtr pintf)
  {
    TAutoDriver<ISchemaNotation>::Bind(pintf, true);
  }

  ISchemaNotationDispT& operator=(ISchemaNotation *pintf)
  {
    TAutoDriver<ISchemaNotation>::Bind(pintf, false);
    return *this;
  }

  ISchemaNotationDispT& operator=(ISchemaNotationPtr pintf)
  {
    TAutoDriver<ISchemaNotation>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_systemIdentifier(BSTR* uri/*[out,retval]*/);
  BSTR            __fastcall get_systemIdentifier(void);
  HRESULT         __fastcall get_publicIdentifier(BSTR* uri/*[out,retval]*/);
  BSTR            __fastcall get_publicIdentifier(void);
  HRESULT         __fastcall get_name(BSTR* name/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/);
  BSTR            __fastcall get_namespaceURI(void);
  HRESULT         __fastcall get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/);
  Msxml2_tlb::ISchemaPtr __fastcall get_schema(void);
  HRESULT         __fastcall get_id(BSTR* id/*[out,retval]*/);
  BSTR            __fastcall get_id(void);
  HRESULT         __fastcall get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/);
  Msxml2_tlb::SOMITEMTYPE __fastcall get_itemType(void);
  HRESULT         __fastcall get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/);
  Msxml2_tlb::IVBSAXAttributesPtr __fastcall get_unhandledAttributes(void);
  HRESULT         __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                             TOLEBOOL* isWritten/*[out,retval]*/);
  TOLEBOOL        __fastcall writeAnnotation(LPUNKNOWN annotationSink/*[in]*/);

  __property   BSTR            systemIdentifier = {read = get_systemIdentifier};
  __property   BSTR            publicIdentifier = {read = get_publicIdentifier};

  __property   BSTR            name = {read = get_name};
  __property   BSTR            namespaceURI = {read = get_namespaceURI};
  __property   Msxml2_tlb::ISchemaPtr schema = {read = get_schema};
  __property   BSTR            id = {read = get_id};
  __property   Msxml2_tlb::SOMITEMTYPE itemType = {read = get_itemType};
  __property   Msxml2_tlb::IVBSAXAttributesPtr unhandledAttributes = {read = get_unhandledAttributes};
};
typedef ISchemaNotationDispT<ISchemaNotation> ISchemaNotationDisp;

typedef TComInterface<IXMLElementCollection>  TCOMIXMLElementCollection;

// *********************************************************************//
// DispIntf:  IXMLElementCollection
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {65725580-9B5D-11D0-9BFE-00C04FC99C8E}
// *********************************************************************//
template<class T>
class IXMLElementCollectionDispT : public TAutoDriver<IXMLElementCollection>
{
public:
  IXMLElementCollectionDispT(){}

  IXMLElementCollectionDispT(IXMLElementCollection *pintf)
  {
    TAutoDriver<IXMLElementCollection>::Bind(pintf, false);
  }

  IXMLElementCollectionDispT(IXMLElementCollectionPtr pintf)
  {
    TAutoDriver<IXMLElementCollection>::Bind(pintf, true);
  }

  IXMLElementCollectionDispT& operator=(IXMLElementCollection *pintf)
  {
    TAutoDriver<IXMLElementCollection>::Bind(pintf, false);
    return *this;
  }

  IXMLElementCollectionDispT& operator=(IXMLElementCollectionPtr pintf)
  {
    TAutoDriver<IXMLElementCollection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall set_length(long p/*[in]*/);
  HRESULT         __fastcall get_length(long* p/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);
  HRESULT         __fastcall item(TVariantInParam var1/*[in,opt]*/, TVariantInParam var2/*[in,opt]*/
                                  , LPDISPATCH* ppDisp/*[out,retval]*/);
  LPDISPATCH      __fastcall item(TVariantInParam var1/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam var2/*[in,opt]*/= TNoParam());

  __property   long            length = {read = get_length, write = set_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLElementCollectionDispT<IXMLElementCollection> IXMLElementCollectionDisp;

typedef TComInterface<IXMLDocument>  TCOMIXMLDocument;

// *********************************************************************//
// DispIntf:  IXMLDocument
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {F52E2B61-18A1-11D1-B105-00805F49916B}
// *********************************************************************//
template<class T>
class IXMLDocumentDispT : public TAutoDriver<IXMLDocument>
{
public:
  IXMLDocumentDispT(){}

  IXMLDocumentDispT(IXMLDocument *pintf)
  {
    TAutoDriver<IXMLDocument>::Bind(pintf, false);
  }

  IXMLDocumentDispT(IXMLDocumentPtr pintf)
  {
    TAutoDriver<IXMLDocument>::Bind(pintf, true);
  }

  IXMLDocumentDispT& operator=(IXMLDocument *pintf)
  {
    TAutoDriver<IXMLDocument>::Bind(pintf, false);
    return *this;
  }

  IXMLDocumentDispT& operator=(IXMLDocumentPtr pintf)
  {
    TAutoDriver<IXMLDocument>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_root(Msxml2_tlb::IXMLElementPtr* p/*[out,retval]*/);
  Msxml2_tlb::IXMLElementPtr __fastcall get_root(void);
  HRESULT         __fastcall get_fileSize(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileSize(void);
  HRESULT         __fastcall get_fileModifiedDate(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileModifiedDate(void);
  HRESULT         __fastcall get_fileUpdatedDate(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileUpdatedDate(void);
  HRESULT         __fastcall get_url(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_url(void);
  HRESULT         __fastcall set_url(BSTR p/*[in]*/);
  HRESULT         __fastcall get_mimeType(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_mimeType(void);
  HRESULT         __fastcall get_readyState(long* pl/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall get_charset(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_charset(void);
  HRESULT         __fastcall set_charset(BSTR p/*[in]*/);
  HRESULT         __fastcall get_version(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_version(void);
  HRESULT         __fastcall get_doctype(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_doctype(void);
  HRESULT         __fastcall get_dtdURL(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_dtdURL(void);
  HRESULT         __fastcall createElement(TVariantInParam vType/*[in]*/, 
                                           TVariantInParam var1/*[in,opt]*/, 
                                           Msxml2_tlb::IXMLElementPtr* ppElem/*[out,retval]*/);
  Msxml2_tlb::IXMLElementPtr __fastcall createElement(TVariantInParam vType/*[in]*/, 
                                                      TVariantInParam var1/*[in,opt]*/= TNoParam());

  __property   Msxml2_tlb::IXMLElementPtr root = {read = get_root};
  __property   BSTR            fileSize = {read = get_fileSize};
  __property   BSTR            fileModifiedDate = {read = get_fileModifiedDate};
  __property   BSTR            fileUpdatedDate = {read = get_fileUpdatedDate};
  __property   BSTR            url = {read = get_url, write = set_url};
  __property   BSTR            mimeType = {read = get_mimeType};
  __property   long            readyState = {read = get_readyState};
  __property   BSTR            charset = {read = get_charset, write = set_charset};
  __property   BSTR            version = {read = get_version};
  __property   BSTR            doctype = {read = get_doctype};
  __property   BSTR            dtdURL = {read = get_dtdURL};
};
typedef IXMLDocumentDispT<IXMLDocument> IXMLDocumentDisp;

typedef TComInterface<IXMLElement>  TCOMIXMLElement;

// *********************************************************************//
// DispIntf:  IXMLElement
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {3F7F31AC-E15F-11D0-9C25-00C04FC99C8E}
// *********************************************************************//
template<class T>
class IXMLElementDispT : public TAutoDriver<IXMLElement>
{
public:
  IXMLElementDispT(){}

  IXMLElementDispT(IXMLElement *pintf)
  {
    TAutoDriver<IXMLElement>::Bind(pintf, false);
  }

  IXMLElementDispT(IXMLElementPtr pintf)
  {
    TAutoDriver<IXMLElement>::Bind(pintf, true);
  }

  IXMLElementDispT& operator=(IXMLElement *pintf)
  {
    TAutoDriver<IXMLElement>::Bind(pintf, false);
    return *this;
  }

  IXMLElementDispT& operator=(IXMLElementPtr pintf)
  {
    TAutoDriver<IXMLElement>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_tagName(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_tagName(void);
  HRESULT         __fastcall set_tagName(BSTR p/*[in]*/);
  HRESULT         __fastcall get_parent(Msxml2_tlb::IXMLElementPtr* ppParent/*[out,retval]*/);
  Msxml2_tlb::IXMLElementPtr __fastcall get_parent(void);
  HRESULT         __fastcall setAttribute(BSTR strPropertyName/*[in]*/, 
                                          TVariantInParam PropertyValue/*[in]*/);
  HRESULT         __fastcall getAttribute(BSTR strPropertyName/*[in]*/, 
                                          TVariant* PropertyValue/*[out,retval]*/);
  TVariant        __fastcall getAttribute(BSTR strPropertyName/*[in]*/);
  HRESULT         __fastcall removeAttribute(BSTR strPropertyName/*[in]*/);
  HRESULT         __fastcall get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/);
  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_children(void);
  HRESULT         __fastcall get_type(long* plType/*[out,retval]*/);
  long            __fastcall get_type(void);
  HRESULT         __fastcall get_text(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR p/*[in]*/);
  HRESULT         __fastcall addChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/, long lIndex, 
                                      long lReserved);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/);

  __property   BSTR            tagName = {read = get_tagName, write = set_tagName};
  __property   Msxml2_tlb::IXMLElementPtr parent = {read = get_parent};
  __property   Msxml2_tlb::IXMLElementCollectionPtr children = {read = get_children};
  __property   long            type = {read = get_type};
  __property   BSTR            text = {read = get_text, write = set_text};
};
typedef IXMLElementDispT<IXMLElement> IXMLElementDisp;

// *********************************************************************//
// DispIntf:  IXMLDocument2
// Flags:     (4112) Hidden Dispatchable
// GUID:      {2B8DE2FE-8D2D-11D1-B2FC-00C04FD915A9}
// *********************************************************************//
template<class T>
class IXMLDocument2DispT : public TAutoDriver<IXMLDocument2>
{
public:
  IXMLDocument2DispT(){}

  IXMLDocument2DispT(IXMLDocument2 *pintf)
  {
    TAutoDriver<IXMLDocument2>::Bind(pintf, false);
  }

  IXMLDocument2DispT(IXMLDocument2Ptr pintf)
  {
    TAutoDriver<IXMLDocument2>::Bind(pintf, true);
  }

  IXMLDocument2DispT& operator=(IXMLDocument2 *pintf)
  {
    TAutoDriver<IXMLDocument2>::Bind(pintf, false);
    return *this;
  }

  IXMLDocument2DispT& operator=(IXMLDocument2Ptr pintf)
  {
    TAutoDriver<IXMLDocument2>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_XMLDocument));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_XMLDocument);
  }

  HRESULT         __fastcall get_root(Msxml2_tlb::IXMLElement2Ptr* p/*[out,retval]*/);
  Msxml2_tlb::IXMLElement2Ptr __fastcall get_root(void);
  HRESULT         __fastcall get_fileSize(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileSize(void);
  HRESULT         __fastcall get_fileModifiedDate(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileModifiedDate(void);
  HRESULT         __fastcall get_fileUpdatedDate(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_fileUpdatedDate(void);
  HRESULT         __fastcall get_url(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_url(void);
  HRESULT         __fastcall set_url(BSTR p/*[in]*/);
  HRESULT         __fastcall get_mimeType(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_mimeType(void);
  HRESULT         __fastcall get_readyState(long* pl/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall get_charset(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_charset(void);
  HRESULT         __fastcall set_charset(BSTR p/*[in]*/);
  HRESULT         __fastcall get_version(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_version(void);
  HRESULT         __fastcall get_doctype(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_doctype(void);
  HRESULT         __fastcall get_dtdURL(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_dtdURL(void);
  HRESULT         __fastcall createElement(TVariantInParam vType/*[in]*/, 
                                           TVariantInParam var1/*[in,opt]*/, 
                                           Msxml2_tlb::IXMLElement2Ptr* ppElem/*[out,retval]*/);
  Msxml2_tlb::IXMLElement2Ptr __fastcall createElement(TVariantInParam vType/*[in]*/, 
                                                       TVariantInParam var1/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall get_async(TOLEBOOL* pf/*[out,retval]*/);
  TOLEBOOL        __fastcall get_async(void);
  HRESULT         __fastcall set_async(TOLEBOOL pf/*[in]*/);

  __property   Msxml2_tlb::IXMLElement2Ptr root = {read = get_root};
  __property   BSTR            fileSize = {read = get_fileSize};
  __property   BSTR            fileModifiedDate = {read = get_fileModifiedDate};
  __property   BSTR            fileUpdatedDate = {read = get_fileUpdatedDate};
  __property   BSTR            url = {read = get_url, write = set_url};
  __property   BSTR            mimeType = {read = get_mimeType};
  __property   long            readyState = {read = get_readyState};
  __property   BSTR            charset = {read = get_charset, write = set_charset};
  __property   BSTR            version = {read = get_version};
  __property   BSTR            doctype = {read = get_doctype};
  __property   BSTR            dtdURL = {read = get_dtdURL};
  __property   TOLEBOOL        async = {read = get_async, write = set_async};
};
typedef IXMLDocument2DispT<IXMLDocument2> IXMLDocument2Disp;

typedef TComInterface<IXMLElement2>  TCOMIXMLElement2;

// *********************************************************************//
// DispIntf:  IXMLElement2
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {2B8DE2FF-8D2D-11D1-B2FC-00C04FD915A9}
// *********************************************************************//
template<class T>
class IXMLElement2DispT : public TAutoDriver<IXMLElement2>
{
public:
  IXMLElement2DispT(){}

  IXMLElement2DispT(IXMLElement2 *pintf)
  {
    TAutoDriver<IXMLElement2>::Bind(pintf, false);
  }

  IXMLElement2DispT(IXMLElement2Ptr pintf)
  {
    TAutoDriver<IXMLElement2>::Bind(pintf, true);
  }

  IXMLElement2DispT& operator=(IXMLElement2 *pintf)
  {
    TAutoDriver<IXMLElement2>::Bind(pintf, false);
    return *this;
  }

  IXMLElement2DispT& operator=(IXMLElement2Ptr pintf)
  {
    TAutoDriver<IXMLElement2>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_tagName(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_tagName(void);
  HRESULT         __fastcall set_tagName(BSTR p/*[in]*/);
  HRESULT         __fastcall get_parent(Msxml2_tlb::IXMLElement2Ptr* ppParent/*[out,retval]*/);
  Msxml2_tlb::IXMLElement2Ptr __fastcall get_parent(void);
  HRESULT         __fastcall setAttribute(BSTR strPropertyName/*[in]*/, 
                                          TVariantInParam PropertyValue/*[in]*/);
  HRESULT         __fastcall getAttribute(BSTR strPropertyName/*[in]*/, 
                                          TVariant* PropertyValue/*[out,retval]*/);
  TVariant        __fastcall getAttribute(BSTR strPropertyName/*[in]*/);
  HRESULT         __fastcall removeAttribute(BSTR strPropertyName/*[in]*/);
  HRESULT         __fastcall get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/);
  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_children(void);
  HRESULT         __fastcall get_type(long* plType/*[out,retval]*/);
  long            __fastcall get_type(void);
  HRESULT         __fastcall get_text(BSTR* p/*[out,retval]*/);
  BSTR            __fastcall get_text(void);
  HRESULT         __fastcall set_text(BSTR p/*[in]*/);
  HRESULT         __fastcall addChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/, long lIndex, 
                                      long lReserved);
  HRESULT         __fastcall removeChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/);
  HRESULT         __fastcall get_attributes(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/);
  Msxml2_tlb::IXMLElementCollectionPtr __fastcall get_attributes(void);

  __property   BSTR            tagName = {read = get_tagName, write = set_tagName};
  __property   Msxml2_tlb::IXMLElement2Ptr parent = {read = get_parent};
  __property   Msxml2_tlb::IXMLElementCollectionPtr children = {read = get_children};
  __property   long            type = {read = get_type};
  __property   BSTR            text = {read = get_text, write = set_text};
  __property   Msxml2_tlb::IXMLElementCollectionPtr attributes = {read = get_attributes};
};
typedef IXMLElement2DispT<IXMLElement2> IXMLElement2Disp;

typedef TComInterface<IXMLAttribute>  TCOMIXMLAttribute;

// *********************************************************************//
// DispIntf:  IXMLAttribute
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {D4D4A0FC-3B73-11D1-B2B4-00C04FB92596}
// *********************************************************************//
template<class T>
class IXMLAttributeDispT : public TAutoDriver<IXMLAttribute>
{
public:
  IXMLAttributeDispT(){}

  IXMLAttributeDispT(IXMLAttribute *pintf)
  {
    TAutoDriver<IXMLAttribute>::Bind(pintf, false);
  }

  IXMLAttributeDispT(IXMLAttributePtr pintf)
  {
    TAutoDriver<IXMLAttribute>::Bind(pintf, true);
  }

  IXMLAttributeDispT& operator=(IXMLAttribute *pintf)
  {
    TAutoDriver<IXMLAttribute>::Bind(pintf, false);
    return *this;
  }

  IXMLAttributeDispT& operator=(IXMLAttributePtr pintf)
  {
    TAutoDriver<IXMLAttribute>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_name(BSTR* n/*[out,retval]*/);
  BSTR            __fastcall get_name(void);
  HRESULT         __fastcall get_value(BSTR* v/*[out,retval]*/);
  BSTR            __fastcall get_value(void);

  __property   BSTR            name = {read = get_name};
  __property   BSTR            value = {read = get_value};
};
typedef IXMLAttributeDispT<IXMLAttribute> IXMLAttributeDisp;

typedef TComInterface<IXMLError>  TCOMIXMLError;

typedef TComInterface<IXMLDOMSelection>  TCOMIXMLDOMSelection;

// *********************************************************************//
// DispIntf:  IXMLDOMSelection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AA634FC7-5888-44A7-A257-3A47150D3A0E}
// *********************************************************************//
template<class T>
class IXMLDOMSelectionDispT : public TAutoDriver<IXMLDOMSelection>
{
public:
  IXMLDOMSelectionDispT(){}

  IXMLDOMSelectionDispT(IXMLDOMSelection *pintf)
  {
    TAutoDriver<IXMLDOMSelection>::Bind(pintf, false);
  }

  IXMLDOMSelectionDispT(IXMLDOMSelectionPtr pintf)
  {
    TAutoDriver<IXMLDOMSelection>::Bind(pintf, true);
  }

  IXMLDOMSelectionDispT& operator=(IXMLDOMSelection *pintf)
  {
    TAutoDriver<IXMLDOMSelection>::Bind(pintf, false);
    return *this;
  }

  IXMLDOMSelectionDispT& operator=(IXMLDOMSelectionPtr pintf)
  {
    TAutoDriver<IXMLDOMSelection>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_expr(BSTR* expression/*[out,retval]*/);
  BSTR            __fastcall get_expr(void);
  HRESULT         __fastcall set_expr(BSTR expression/*[in]*/);
  HRESULT         __fastcall get_context(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_context(void);
  HRESULT         __fastcall _set_context(Msxml2_tlb::IXMLDOMNodePtr ppNode/*[in]*/);
  HRESULT         __fastcall peekNode(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall peekNode(void);
  HRESULT         __fastcall matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/);
  HRESULT         __fastcall removeNext(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall removeNext(void);
  HRESULT         __fastcall removeAll();
  HRESULT         __fastcall clone(Msxml2_tlb::IXMLDOMSelectionPtr* ppNode/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMSelectionPtr __fastcall clone(void);
  HRESULT         __fastcall getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getProperty(BSTR name/*[in]*/);
  HRESULT         __fastcall setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/);
  HRESULT         __fastcall get_item(long index/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall get_length(long* listLength/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMNodePtr __fastcall nextNode(void);
  HRESULT         __fastcall reset();
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   BSTR            expr = {read = get_expr, write = set_expr};
  __property   Msxml2_tlb::IXMLDOMNodePtr context = {read = get_context, write = _set_context};

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IXMLDOMSelectionDispT<IXMLDOMSelection> IXMLDOMSelectionDisp;

// *********************************************************************//
// DispIntf:  XMLDOMDocumentEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {3EFAA427-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template <class T>
class XMLDOMDocumentEventsDispT : public TAutoDriver<XMLDOMDocumentEvents>
{
public:
  XMLDOMDocumentEventsDispT(){}

  void Attach(LPUNKNOWN punk)
  { m_Dispatch = static_cast<T*>(punk); }

  HRESULT         __fastcall ondataavailable();
  HRESULT         __fastcall onreadystatechange();

};
typedef XMLDOMDocumentEventsDispT<XMLDOMDocumentEvents> XMLDOMDocumentEventsDisp;

// *********************************************************************//
// SmartIntf: TCOMIDSOControl
// Interface: IDSOControl
// *********************************************************************//
template <class T /* IDSOControl */ >
class TCOMIDSOControlT : public TComInterface<IDSOControl>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIDSOControlT() {}
  TCOMIDSOControlT(IDSOControl *intf, bool addRef = false) : TComInterface<IDSOControl>(intf, addRef) {}
  TCOMIDSOControlT(const TCOMIDSOControlT& src) : TComInterface<IDSOControl>(src) {}
  TCOMIDSOControlT& operator=(const TCOMIDSOControlT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall get_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr* ppDoc/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_XMLDocument(void);
  HRESULT         __fastcall set_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr ppDoc/*[in]*/);
  HRESULT         __fastcall get_JavaDSOCompatible(long* fJavaDSOCompatible/*[out,retval]*/);
  long            __fastcall get_JavaDSOCompatible(void);
  HRESULT         __fastcall set_JavaDSOCompatible(long fJavaDSOCompatible/*[in]*/);
  HRESULT         __fastcall get_readyState(long* state/*[out,retval]*/);
  long            __fastcall get_readyState(void);

  __property   Msxml2_tlb::IXMLDOMDocumentPtr XMLDocument = {read = get_XMLDocument, write = set_XMLDocument};
  __property   long            JavaDSOCompatible = {read = get_JavaDSOCompatible, write = set_JavaDSOCompatible};
  __property   long            readyState = {read = get_readyState};
};
typedef TCOMIDSOControlT<IDSOControl> TCOMIDSOControl;

// *********************************************************************//
// DispIntf:  IDSOControl
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {310AFA62-0575-11D2-9CA9-0060B0EC3D39}
// *********************************************************************//
template<class T>
class IDSOControlDispT : public TAutoDriver<IDSOControl>
{
public:
  IDSOControlDispT(){}

  IDSOControlDispT(IDSOControl *pintf)
  {
    TAutoDriver<IDSOControl>::Bind(pintf, false);
  }

  IDSOControlDispT(IDSOControlPtr pintf)
  {
    TAutoDriver<IDSOControl>::Bind(pintf, true);
  }

  IDSOControlDispT& operator=(IDSOControl *pintf)
  {
    TAutoDriver<IDSOControl>::Bind(pintf, false);
    return *this;
  }

  IDSOControlDispT& operator=(IDSOControlPtr pintf)
  {
    TAutoDriver<IDSOControl>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_DSOControl));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_DSOControl);
  }

  HRESULT         __fastcall get_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr* ppDoc/*[out,retval]*/);
  Msxml2_tlb::IXMLDOMDocumentPtr __fastcall get_XMLDocument(void);
  HRESULT         __fastcall set_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr ppDoc/*[in]*/);
  HRESULT         __fastcall get_JavaDSOCompatible(long* fJavaDSOCompatible/*[out,retval]*/);
  long            __fastcall get_JavaDSOCompatible(void);
  HRESULT         __fastcall set_JavaDSOCompatible(long fJavaDSOCompatible/*[in]*/);
  HRESULT         __fastcall get_readyState(long* state/*[out,retval]*/);
  long            __fastcall get_readyState(void);

  __property   Msxml2_tlb::IXMLDOMDocumentPtr XMLDocument = {read = get_XMLDocument, write = set_XMLDocument};
  __property   long            JavaDSOCompatible = {read = get_JavaDSOCompatible, write = set_JavaDSOCompatible};
  __property   long            readyState = {read = get_readyState};
};
typedef IDSOControlDispT<IDSOControl> IDSOControlDisp;

// *********************************************************************//
// SmartIntf: TCOMIXMLHTTPRequest
// Interface: IXMLHTTPRequest
// *********************************************************************//
template <class T /* IXMLHTTPRequest */ >
class TCOMIXMLHTTPRequestT : public TComInterface<IXMLHTTPRequest>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIXMLHTTPRequestT() {}
  TCOMIXMLHTTPRequestT(IXMLHTTPRequest *intf, bool addRef = false) : TComInterface<IXMLHTTPRequest>(intf, addRef) {}
  TCOMIXMLHTTPRequestT(const TCOMIXMLHTTPRequestT& src) : TComInterface<IXMLHTTPRequest>(src) {}
  TCOMIXMLHTTPRequestT& operator=(const TCOMIXMLHTTPRequestT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                  TVariantInParam varAsync/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrUser/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrPassword/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/);
  HRESULT         __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                               BSTR* pbstrValue/*[out,retval]*/);
  BSTR            __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/);
  HRESULT         __fastcall getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/);
  BSTR            __fastcall getAllResponseHeaders(void);
  HRESULT         __fastcall send(TVariantInParam varBody/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall abort(void);
  HRESULT         __fastcall get_status(long* plStatus/*[out,retval]*/);
  long            __fastcall get_status(void);
  HRESULT         __fastcall get_statusText(BSTR* pbstrStatus/*[out,retval]*/);
  BSTR            __fastcall get_statusText(void);
  HRESULT         __fastcall get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/);
  LPDISPATCH      __fastcall get_responseXML(void);
  HRESULT         __fastcall get_responseText(BSTR* pbstrBody/*[out,retval]*/);
  BSTR            __fastcall get_responseText(void);
  HRESULT         __fastcall get_responseBody(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseBody(void);
  HRESULT         __fastcall get_responseStream(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseStream(void);
  HRESULT         __fastcall get_readyState(long* plState/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall set_onreadystatechange(LPDISPATCH Param1/*[in]*/);

  __property   long            status = {read = get_status};
  __property   BSTR            statusText = {read = get_statusText};
  __property   LPDISPATCH      responseXML = {read = get_responseXML};
  __property   BSTR            responseText = {read = get_responseText};
  __property   long            readyState = {read = get_readyState};
  __property   LPDISPATCH      onreadystatechange = {write = set_onreadystatechange};
};
typedef TCOMIXMLHTTPRequestT<IXMLHTTPRequest> TCOMIXMLHTTPRequest;

// *********************************************************************//
// DispIntf:  IXMLHTTPRequest
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {ED8C108D-4349-11D2-91A4-00C04F7969E8}
// *********************************************************************//
template<class T>
class IXMLHTTPRequestDispT : public TAutoDriver<IXMLHTTPRequest>
{
public:
  IXMLHTTPRequestDispT(){}

  IXMLHTTPRequestDispT(IXMLHTTPRequest *pintf)
  {
    TAutoDriver<IXMLHTTPRequest>::Bind(pintf, false);
  }

  IXMLHTTPRequestDispT(IXMLHTTPRequestPtr pintf)
  {
    TAutoDriver<IXMLHTTPRequest>::Bind(pintf, true);
  }

  IXMLHTTPRequestDispT& operator=(IXMLHTTPRequest *pintf)
  {
    TAutoDriver<IXMLHTTPRequest>::Bind(pintf, false);
    return *this;
  }

  IXMLHTTPRequestDispT& operator=(IXMLHTTPRequestPtr pintf)
  {
    TAutoDriver<IXMLHTTPRequest>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_XMLHTTP));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_XMLHTTP);
  }

  HRESULT         __fastcall open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                  TVariantInParam varAsync/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrUser/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrPassword/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/);
  HRESULT         __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                               BSTR* pbstrValue/*[out,retval]*/);
  BSTR            __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/);
  HRESULT         __fastcall getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/);
  BSTR            __fastcall getAllResponseHeaders(void);
  HRESULT         __fastcall send(TVariantInParam varBody/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall abort();
  HRESULT         __fastcall get_status(long* plStatus/*[out,retval]*/);
  long            __fastcall get_status(void);
  HRESULT         __fastcall get_statusText(BSTR* pbstrStatus/*[out,retval]*/);
  BSTR            __fastcall get_statusText(void);
  HRESULT         __fastcall get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/);
  LPDISPATCH      __fastcall get_responseXML(void);
  HRESULT         __fastcall get_responseText(BSTR* pbstrBody/*[out,retval]*/);
  BSTR            __fastcall get_responseText(void);
  HRESULT         __fastcall get_responseBody(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseBody(void);
  HRESULT         __fastcall get_responseStream(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseStream(void);
  HRESULT         __fastcall get_readyState(long* plState/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall set_onreadystatechange(LPDISPATCH Param1/*[in]*/);

  __property   long            status = {read = get_status};
  __property   BSTR            statusText = {read = get_statusText};
  __property   LPDISPATCH      responseXML = {read = get_responseXML};
  __property   BSTR            responseText = {read = get_responseText};
  __property   long            readyState = {read = get_readyState};
  __property   LPDISPATCH      onreadystatechange = {write = set_onreadystatechange};
};
typedef IXMLHTTPRequestDispT<IXMLHTTPRequest> IXMLHTTPRequestDisp;

// *********************************************************************//
// SmartIntf: TCOMIServerXMLHTTPRequest
// Interface: IServerXMLHTTPRequest
// *********************************************************************//
template <class T /* IServerXMLHTTPRequest */ >
class TCOMIServerXMLHTTPRequestT : public TComInterface<IServerXMLHTTPRequest>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIServerXMLHTTPRequestT() {}
  TCOMIServerXMLHTTPRequestT(IServerXMLHTTPRequest *intf, bool addRef = false) : TComInterface<IServerXMLHTTPRequest>(intf, addRef) {}
  TCOMIServerXMLHTTPRequestT(const TCOMIServerXMLHTTPRequestT& src) : TComInterface<IServerXMLHTTPRequest>(src) {}
  TCOMIServerXMLHTTPRequestT& operator=(const TCOMIServerXMLHTTPRequestT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/, 
                                         long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/);
  HRESULT         __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                             TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/);
  HRESULT         __fastcall setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariantInParam value/*[in]*/);

};
typedef TCOMIServerXMLHTTPRequestT<IServerXMLHTTPRequest> TCOMIServerXMLHTTPRequest;

// *********************************************************************//
// DispIntf:  IServerXMLHTTPRequest
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2E9196BF-13BA-4DD4-91CA-6C571F281495}
// *********************************************************************//
template<class T>
class IServerXMLHTTPRequestDispT : public TAutoDriver<IServerXMLHTTPRequest>
{
public:
  IServerXMLHTTPRequestDispT(){}

  IServerXMLHTTPRequestDispT(IServerXMLHTTPRequest *pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest>::Bind(pintf, false);
  }

  IServerXMLHTTPRequestDispT(IServerXMLHTTPRequestPtr pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest>::Bind(pintf, true);
  }

  IServerXMLHTTPRequestDispT& operator=(IServerXMLHTTPRequest *pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest>::Bind(pintf, false);
    return *this;
  }

  IServerXMLHTTPRequestDispT& operator=(IServerXMLHTTPRequestPtr pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ServerXMLHTTP));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ServerXMLHTTP);
  }

  HRESULT         __fastcall setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/, 
                                         long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/);
  HRESULT         __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                             TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/);
  HRESULT         __fastcall setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariantInParam value/*[in]*/);
  HRESULT         __fastcall open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                  TVariantInParam varAsync/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrUser/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrPassword/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/);
  HRESULT         __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                               BSTR* pbstrValue/*[out,retval]*/);
  BSTR            __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/);
  HRESULT         __fastcall getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/);
  BSTR            __fastcall getAllResponseHeaders(void);
  HRESULT         __fastcall send(TVariantInParam varBody/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall abort();
  HRESULT         __fastcall get_status(long* plStatus/*[out,retval]*/);
  long            __fastcall get_status(void);
  HRESULT         __fastcall get_statusText(BSTR* pbstrStatus/*[out,retval]*/);
  BSTR            __fastcall get_statusText(void);
  HRESULT         __fastcall get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/);
  LPDISPATCH      __fastcall get_responseXML(void);
  HRESULT         __fastcall get_responseText(BSTR* pbstrBody/*[out,retval]*/);
  BSTR            __fastcall get_responseText(void);
  HRESULT         __fastcall get_responseBody(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseBody(void);
  HRESULT         __fastcall get_responseStream(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseStream(void);
  HRESULT         __fastcall get_readyState(long* plState/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall set_onreadystatechange(LPDISPATCH Param1/*[in]*/);


  __property   long            status = {read = get_status};
  __property   BSTR            statusText = {read = get_statusText};
  __property   LPDISPATCH      responseXML = {read = get_responseXML};
  __property   BSTR            responseText = {read = get_responseText};
  __property   long            readyState = {read = get_readyState};
  __property   LPDISPATCH      onreadystatechange = {write = set_onreadystatechange};
};
typedef IServerXMLHTTPRequestDispT<IServerXMLHTTPRequest> IServerXMLHTTPRequestDisp;

// *********************************************************************//
// SmartIntf: TCOMIServerXMLHTTPRequest2
// Interface: IServerXMLHTTPRequest2
// *********************************************************************//
template <class T /* IServerXMLHTTPRequest2 */ >
class TCOMIServerXMLHTTPRequest2T : public TComInterface<IServerXMLHTTPRequest2>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIServerXMLHTTPRequest2T() {}
  TCOMIServerXMLHTTPRequest2T(IServerXMLHTTPRequest2 *intf, bool addRef = false) : TComInterface<IServerXMLHTTPRequest2>(intf, addRef) {}
  TCOMIServerXMLHTTPRequest2T(const TCOMIServerXMLHTTPRequest2T& src) : TComInterface<IServerXMLHTTPRequest2>(src) {}
  TCOMIServerXMLHTTPRequest2T& operator=(const TCOMIServerXMLHTTPRequest2T& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall setProxy(Msxml2_tlb::SXH_PROXY_SETTING proxySetting/*[in]*/, 
                                      TVariantInParam varProxyServer/*[in,opt]*/= TNoParam(), 
                                      TVariantInParam varBypassList/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setProxyCredentials(BSTR bstrUserName/*[in]*/, 
                                                 BSTR bstrPassword/*[in]*/);

};
typedef TCOMIServerXMLHTTPRequest2T<IServerXMLHTTPRequest2> TCOMIServerXMLHTTPRequest2;

// *********************************************************************//
// DispIntf:  IServerXMLHTTPRequest2
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}
// *********************************************************************//
template<class T>
class IServerXMLHTTPRequest2DispT : public TAutoDriver<IServerXMLHTTPRequest2>
{
public:
  IServerXMLHTTPRequest2DispT(){}

  IServerXMLHTTPRequest2DispT(IServerXMLHTTPRequest2 *pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest2>::Bind(pintf, false);
  }

  IServerXMLHTTPRequest2DispT(IServerXMLHTTPRequest2Ptr pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest2>::Bind(pintf, true);
  }

  IServerXMLHTTPRequest2DispT& operator=(IServerXMLHTTPRequest2 *pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest2>::Bind(pintf, false);
    return *this;
  }

  IServerXMLHTTPRequest2DispT& operator=(IServerXMLHTTPRequest2Ptr pintf)
  {
    TAutoDriver<IServerXMLHTTPRequest2>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_ServerXMLHTTP40));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_ServerXMLHTTP40);
  }

  HRESULT         __fastcall setProxy(Msxml2_tlb::SXH_PROXY_SETTING proxySetting/*[in]*/, 
                                      TVariantInParam varProxyServer/*[in,opt]*/= TNoParam(), 
                                      TVariantInParam varBypassList/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setProxyCredentials(BSTR bstrUserName/*[in]*/, 
                                                 BSTR bstrPassword/*[in]*/);
  HRESULT         __fastcall setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/, 
                                         long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/);
  HRESULT         __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                             TOLEBOOL* isSuccessful/*[out,retval]*/);
  TOLEBOOL        __fastcall waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariant* value/*[out,retval]*/);
  TVariant        __fastcall getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/);
  HRESULT         __fastcall setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                       TVariantInParam value/*[in]*/);
  HRESULT         __fastcall open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                  TVariantInParam varAsync/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrUser/*[in,opt]*/= TNoParam(), 
                                  TVariantInParam bstrPassword/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/);
  HRESULT         __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                               BSTR* pbstrValue/*[out,retval]*/);
  BSTR            __fastcall getResponseHeader(BSTR bstrHeader/*[in]*/);
  HRESULT         __fastcall getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/);
  BSTR            __fastcall getAllResponseHeaders(void);
  HRESULT         __fastcall send(TVariantInParam varBody/*[in,opt]*/= TNoParam());
  HRESULT         __fastcall abort();
  HRESULT         __fastcall get_status(long* plStatus/*[out,retval]*/);
  long            __fastcall get_status(void);
  HRESULT         __fastcall get_statusText(BSTR* pbstrStatus/*[out,retval]*/);
  BSTR            __fastcall get_statusText(void);
  HRESULT         __fastcall get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/);
  LPDISPATCH      __fastcall get_responseXML(void);
  HRESULT         __fastcall get_responseText(BSTR* pbstrBody/*[out,retval]*/);
  BSTR            __fastcall get_responseText(void);
  HRESULT         __fastcall get_responseBody(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseBody(void);
  HRESULT         __fastcall get_responseStream(TVariant* pvarBody/*[out,retval]*/);
  TVariant        __fastcall get_responseStream(void);
  HRESULT         __fastcall get_readyState(long* plState/*[out,retval]*/);
  long            __fastcall get_readyState(void);
  HRESULT         __fastcall set_onreadystatechange(LPDISPATCH Param1/*[in]*/);



  __property   long            status = {read = get_status};
  __property   BSTR            statusText = {read = get_statusText};
  __property   LPDISPATCH      responseXML = {read = get_responseXML};
  __property   BSTR            responseText = {read = get_responseText};
  __property   long            readyState = {read = get_readyState};
  __property   LPDISPATCH      onreadystatechange = {write = set_onreadystatechange};
};
typedef IServerXMLHTTPRequest2DispT<IServerXMLHTTPRequest2> IServerXMLHTTPRequest2Disp;

typedef TComInterface<IMXNamespacePrefixes>  TCOMIMXNamespacePrefixes;

// *********************************************************************//
// DispIntf:  IMXNamespacePrefixes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C90352F4-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
template<class T>
class IMXNamespacePrefixesDispT : public TAutoDriver<IMXNamespacePrefixes>
{
public:
  IMXNamespacePrefixesDispT(){}

  IMXNamespacePrefixesDispT(IMXNamespacePrefixes *pintf)
  {
    TAutoDriver<IMXNamespacePrefixes>::Bind(pintf, false);
  }

  IMXNamespacePrefixesDispT(IMXNamespacePrefixesPtr pintf)
  {
    TAutoDriver<IMXNamespacePrefixes>::Bind(pintf, true);
  }

  IMXNamespacePrefixesDispT& operator=(IMXNamespacePrefixes *pintf)
  {
    TAutoDriver<IMXNamespacePrefixes>::Bind(pintf, false);
    return *this;
  }

  IMXNamespacePrefixesDispT& operator=(IMXNamespacePrefixesPtr pintf)
  {
    TAutoDriver<IMXNamespacePrefixes>::Bind(pintf, true);
    return *this;
  }

  HRESULT         __fastcall get_item(long index/*[in]*/, BSTR* prefix/*[out,retval]*/);
  BSTR            __fastcall get_item(long index/*[in]*/);
  HRESULT         __fastcall get_length(long* length/*[out,retval]*/);
  long            __fastcall get_length(void);
  HRESULT         __fastcall get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/);
  LPUNKNOWN       __fastcall get__newEnum(void);

  __property   long            length = {read = get_length};
  __property   LPUNKNOWN       _newEnum = {read = get__newEnum};
};
typedef IMXNamespacePrefixesDispT<IMXNamespacePrefixes> IMXNamespacePrefixesDisp;

// *********************************************************************//
// SmartIntf: TCOMIVBMXNamespaceManager
// Interface: IVBMXNamespaceManager
// *********************************************************************//
template <class T /* IVBMXNamespaceManager */ >
class TCOMIVBMXNamespaceManagerT : public TComInterface<IVBMXNamespaceManager>, public TComInterfaceBase<IUnknown>
{
public:
  TCOMIVBMXNamespaceManagerT() {}
  TCOMIVBMXNamespaceManagerT(IVBMXNamespaceManager *intf, bool addRef = false) : TComInterface<IVBMXNamespaceManager>(intf, addRef) {}
  TCOMIVBMXNamespaceManagerT(const TCOMIVBMXNamespaceManagerT& src) : TComInterface<IVBMXNamespaceManager>(src) {}
  TCOMIVBMXNamespaceManagerT& operator=(const TCOMIVBMXNamespaceManagerT& src) { Bind(src, true); return *this;}

  HRESULT         __fastcall set_allowOverride(TOLEBOOL fOverride/*[in]*/);
  HRESULT         __fastcall get_allowOverride(TOLEBOOL* fOverride/*[out,retval]*/);
  TOLEBOOL        __fastcall get_allowOverride(void);
  HRESULT         __fastcall reset(void);
  HRESULT         __fastcall pushContext(void);
  HRESULT         __fastcall pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                             TOLEBOOL fDeep/*[in,def,opt]*/);
  HRESULT         __fastcall popContext(void);
  HRESULT         __fastcall declarePrefix(BSTR prefix/*[in]*/, BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getDeclaredPrefixes(Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/);
  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getDeclaredPrefixes(void);
  HRESULT         __fastcall getPrefixes(BSTR namespaceURI/*[in]*/, 
                                         Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/);
  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getPrefixes(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getURI(BSTR prefix/*[in]*/, TVariant* uri/*[out,retval]*/);
  TVariant        __fastcall getURI(BSTR prefix/*[in]*/);
  HRESULT         __fastcall getURIFromNode(BSTR strPrefix/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                            TVariant* uri/*[out,retval]*/);
  TVariant        __fastcall getURIFromNode(BSTR strPrefix/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/);

  __property   TOLEBOOL        allowOverride = {read = get_allowOverride, write = set_allowOverride};
};
typedef TCOMIVBMXNamespaceManagerT<IVBMXNamespaceManager> TCOMIVBMXNamespaceManager;

// *********************************************************************//
// DispIntf:  IVBMXNamespaceManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C90352F5-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
template<class T>
class IVBMXNamespaceManagerDispT : public TAutoDriver<IVBMXNamespaceManager>
{
public:
  IVBMXNamespaceManagerDispT(){}

  IVBMXNamespaceManagerDispT(IVBMXNamespaceManager *pintf)
  {
    TAutoDriver<IVBMXNamespaceManager>::Bind(pintf, false);
  }

  IVBMXNamespaceManagerDispT(IVBMXNamespaceManagerPtr pintf)
  {
    TAutoDriver<IVBMXNamespaceManager>::Bind(pintf, true);
  }

  IVBMXNamespaceManagerDispT& operator=(IVBMXNamespaceManager *pintf)
  {
    TAutoDriver<IVBMXNamespaceManager>::Bind(pintf, false);
    return *this;
  }

  IVBMXNamespaceManagerDispT& operator=(IVBMXNamespaceManagerPtr pintf)
  {
    TAutoDriver<IVBMXNamespaceManager>::Bind(pintf, true);
    return *this;
  }

  HRESULT BindDefault()
  {
    return OLECHECK(Bind(CLSID_MXNamespaceManager));
  }

  HRESULT BindRunning()
  {
    return BindToActive(CLSID_MXNamespaceManager);
  }

  HRESULT         __fastcall set_allowOverride(TOLEBOOL fOverride/*[in]*/);
  HRESULT         __fastcall get_allowOverride(TOLEBOOL* fOverride/*[out,retval]*/);
  TOLEBOOL        __fastcall get_allowOverride(void);
  HRESULT         __fastcall reset();
  HRESULT         __fastcall pushContext();
  HRESULT         __fastcall pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                             TOLEBOOL fDeep/*[in,def,opt]*/);
  HRESULT         __fastcall popContext();
  HRESULT         __fastcall declarePrefix(BSTR prefix/*[in]*/, BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getDeclaredPrefixes(Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/);
  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getDeclaredPrefixes(void);
  HRESULT         __fastcall getPrefixes(BSTR namespaceURI/*[in]*/, 
                                         Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/);
  Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall getPrefixes(BSTR namespaceURI/*[in]*/);
  HRESULT         __fastcall getURI(BSTR prefix/*[in]*/, TVariant* uri/*[out,retval]*/);
  TVariant        __fastcall getURI(BSTR prefix/*[in]*/);
  HRESULT         __fastcall getURIFromNode(BSTR strPrefix/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                            TVariant* uri/*[out,retval]*/);
  TVariant        __fastcall getURIFromNode(BSTR strPrefix/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/);

  __property   TOLEBOOL        allowOverride = {read = get_allowOverride, write = set_allowOverride};
};
typedef IVBMXNamespaceManagerDispT<IVBMXNamespaceManager> IVBMXNamespaceManagerDisp;

typedef TComInterface<IMXNamespaceManager>  TCOMIMXNamespaceManager;

// *********************************************************************//
// DispIntf:  IXMLDOMImplementation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8F-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMImplementationDispT<T>::hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/, 
                                          TOLEBOOL* hasFeature/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasFeature"), DISPID(145));
  TAutoArgs<2> _args;
  _args[1] = feature /*[VT_BSTR:0]*/;
  _args[2] = version /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(hasFeature /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMImplementationDispT<T>::hasFeature(BSTR feature/*[in]*/, BSTR version/*[in]*/)
{
  TOLEBOOL hasFeature;
  this->hasFeature(feature, version, (TOLEBOOL*)&hasFeature);
  return hasFeature;
}

// *********************************************************************//
// DispIntf:  IXMLDOMNode
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF80-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNodeDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMNodeDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMNodeDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMNodeDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNodeDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMNodeDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                               Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNodeDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNodeDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNodeDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                   BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMNodeDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNodeDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNodeDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMNodeList
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF82-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMNodeListDispT<T>::get_item(long index/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)listItem /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeListDispT<T>::get_item(long index/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr listItem;
  this->get_item(index, (Msxml2_tlb::IXMLDOMNodePtr*)&listItem);
  return listItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeListDispT<T>::get_length(long* listLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(74));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(listLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMNodeListDispT<T>::get_length(void)
{
  long listLength;
  this->get_length((long*)&listLength);
  return listLength;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeListDispT<T>::nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextNode"), DISPID(76));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNodeListDispT<T>::nextNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextItem;
  this->nextNode((Msxml2_tlb::IXMLDOMNodePtr*)&nextItem);
  return nextItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNodeListDispT<T>::reset()
{
  _TDispID _dispid(*this, OLETEXT("reset"), DISPID(77));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMNodeListDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLDOMNodeListDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  IXMLDOMNamedNodeMap
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF83-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::getNamedItem(BSTR name/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getNamedItem"), DISPID(83));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)namedItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::getNamedItem(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr namedItem;
  this->getNamedItem(name, (Msxml2_tlb::IXMLDOMNodePtr*)&namedItem);
  return namedItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* nameItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("setNamedItem"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newItem /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nameItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::setNamedItem(Msxml2_tlb::IXMLDOMNodePtr newItem/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr nameItem;
  this->setNamedItem(newItem, (Msxml2_tlb::IXMLDOMNodePtr*)&nameItem);
  return nameItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::removeNamedItem(BSTR name/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* namedItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeNamedItem"), DISPID(85));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)namedItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::removeNamedItem(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr namedItem;
  this->removeNamedItem(name, (Msxml2_tlb::IXMLDOMNodePtr*)&namedItem);
  return namedItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::get_item(long index/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)listItem /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::get_item(long index/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr listItem;
  this->get_item(index, (Msxml2_tlb::IXMLDOMNodePtr*)&listItem);
  return listItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::get_length(long* listLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(74));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(listLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMNamedNodeMapDispT<T>::get_length(void)
{
  long listLength;
  this->get_length((long*)&listLength);
  return listLength;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::getQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getQualifiedItem"), DISPID(87));
  TAutoArgs<2> _args;
  _args[1] = baseName /*[VT_BSTR:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)qualifiedItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::getQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr qualifiedItem;
  this->getQualifiedItem(baseName, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&qualifiedItem);
  return qualifiedItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::removeQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* qualifiedItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeQualifiedItem"), DISPID(88));
  TAutoArgs<2> _args;
  _args[1] = baseName /*[VT_BSTR:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)qualifiedItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::removeQualifiedItem(BSTR baseName/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr qualifiedItem;
  this->removeQualifiedItem(baseName, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&qualifiedItem);
  return qualifiedItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextNode"), DISPID(89));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNamedNodeMapDispT<T>::nextNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextItem;
  this->nextNode((Msxml2_tlb::IXMLDOMNodePtr*)&nextItem);
  return nextItem;
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::reset()
{
  _TDispID _dispid(*this, OLETEXT("reset"), DISPID(90));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMNamedNodeMapDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLDOMNamedNodeMapDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  IXMLDOMDocument
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF81-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_doctype(Msxml2_tlb::IXMLDOMDocumentTypePtr* documentType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("doctype"), DISPID(38));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocumentType**)documentType /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentTypePtr __fastcall
IXMLDOMDocumentDispT<T>::get_doctype(void)
{
  Msxml2_tlb::IXMLDOMDocumentTypePtr documentType;
  this->get_doctype((Msxml2_tlb::IXMLDOMDocumentTypePtr*)&documentType);
  return documentType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_implementation(Msxml2_tlb::IXMLDOMImplementationPtr* impl/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("implementation"), DISPID(39));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMImplementation**)impl /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMImplementationPtr __fastcall
IXMLDOMDocumentDispT<T>::get_implementation(void)
{
  Msxml2_tlb::IXMLDOMImplementationPtr impl;
  this->get_implementation((Msxml2_tlb::IXMLDOMImplementationPtr*)&impl);
  return impl;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_documentElement(Msxml2_tlb::IXMLDOMElementPtr* DOMElement/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("documentElement"), DISPID(40));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMElement**)DOMElement /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMElementPtr __fastcall
IXMLDOMDocumentDispT<T>::get_documentElement(void)
{
  Msxml2_tlb::IXMLDOMElementPtr DOMElement;
  this->get_documentElement((Msxml2_tlb::IXMLDOMElementPtr*)&DOMElement);
  return DOMElement;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::_set_documentElement(Msxml2_tlb::IXMLDOMElementPtr DOMElement/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("documentElement"), DISPID(40));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMElement*)DOMElement /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createElement(BSTR tagName/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMElementPtr* element/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createElement"), DISPID(41));
  TAutoArgs<1> _args;
  _args[1] = tagName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMElement**)element /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMElementPtr __fastcall
IXMLDOMDocumentDispT<T>::createElement(BSTR tagName/*[in]*/)
{
  Msxml2_tlb::IXMLDOMElementPtr element;
  this->createElement(tagName, (Msxml2_tlb::IXMLDOMElementPtr*)&element);
  return element;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createDocumentFragment(Msxml2_tlb::IXMLDOMDocumentFragmentPtr* docFrag/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createDocumentFragment"), DISPID(42));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocumentFragment**)docFrag /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentFragmentPtr __fastcall
IXMLDOMDocumentDispT<T>::createDocumentFragment(void)
{
  Msxml2_tlb::IXMLDOMDocumentFragmentPtr docFrag;
  this->createDocumentFragment((Msxml2_tlb::IXMLDOMDocumentFragmentPtr*)&docFrag);
  return docFrag;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createTextNode(BSTR data/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMTextPtr* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createTextNode"), DISPID(43));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMText**)text /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMTextPtr __fastcall
IXMLDOMDocumentDispT<T>::createTextNode(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMTextPtr text;
  this->createTextNode(data, (Msxml2_tlb::IXMLDOMTextPtr*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createComment(BSTR data/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMCommentPtr* comment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createComment"), DISPID(44));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMComment**)comment /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMCommentPtr __fastcall
IXMLDOMDocumentDispT<T>::createComment(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMCommentPtr comment;
  this->createComment(data, (Msxml2_tlb::IXMLDOMCommentPtr*)&comment);
  return comment;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createCDATASection(BSTR data/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMCDATASectionPtr* cdata/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createCDATASection"), DISPID(45));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMCDATASection**)cdata /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMCDATASectionPtr __fastcall
IXMLDOMDocumentDispT<T>::createCDATASection(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMCDATASectionPtr cdata;
  this->createCDATASection(data, (Msxml2_tlb::IXMLDOMCDATASectionPtr*)&cdata);
  return cdata;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/, 
                                                     Msxml2_tlb::IXMLDOMProcessingInstructionPtr* pi/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createProcessingInstruction"), DISPID(46));
  TAutoArgs<2> _args;
  _args[1] = target /*[VT_BSTR:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMProcessingInstruction**)pi /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMProcessingInstructionPtr __fastcall
IXMLDOMDocumentDispT<T>::createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMProcessingInstructionPtr pi;
  this->createProcessingInstruction(target, data, (Msxml2_tlb::IXMLDOMProcessingInstructionPtr*)&pi);
  return pi;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createAttribute(BSTR name/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMAttributePtr* attribute/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createAttribute"), DISPID(47));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMAttribute**)attribute /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMAttributePtr __fastcall
IXMLDOMDocumentDispT<T>::createAttribute(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMAttributePtr attribute;
  this->createAttribute(name, (Msxml2_tlb::IXMLDOMAttributePtr*)&attribute);
  return attribute;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createEntityReference(BSTR name/*[in]*/, 
                                               Msxml2_tlb::IXMLDOMEntityReferencePtr* entityRef/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createEntityReference"), DISPID(49));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMEntityReference**)entityRef /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMEntityReferencePtr __fastcall
IXMLDOMDocumentDispT<T>::createEntityReference(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMEntityReferencePtr entityRef;
  this->createEntityReference(name, (Msxml2_tlb::IXMLDOMEntityReferencePtr*)&entityRef);
  return entityRef;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::getElementsByTagName(BSTR tagName/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getElementsByTagName"), DISPID(50));
  TAutoArgs<1> _args;
  _args[1] = tagName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentDispT<T>::getElementsByTagName(BSTR tagName/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->getElementsByTagName(tagName, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                    BSTR namespaceURI/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createNode"), DISPID(54));
  TAutoArgs<3> _args;
  _args[1] = type /*[VT_VARIANT:0]*/;
  _args[2] = name /*[VT_BSTR:0]*/;
  _args[3] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)node /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                    BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr node;
  this->createNode(type, name, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&node);
  return node;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::nodeFromID(BSTR idString/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeFromID"), DISPID(56));
  TAutoArgs<1> _args;
  _args[1] = idString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)node /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::nodeFromID(BSTR idString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr node;
  this->nodeFromID(idString, (Msxml2_tlb::IXMLDOMNodePtr*)&node);
  return node;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::load(TVariantInParam xmlSource/*[in]*/, 
                              TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("load"), DISPID(58));
  TAutoArgs<1> _args;
  _args[1] = xmlSource /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::load(TVariantInParam xmlSource/*[in]*/)
{
  TOLEBOOL isSuccessful;
  this->load(xmlSource, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_readyState(long* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(-525));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMDocumentDispT<T>::get_readyState(void)
{
  long value;
  this->get_readyState((long*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_parseError(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parseError"), DISPID(59));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMParseError**)errorObj /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall
IXMLDOMDocumentDispT<T>::get_parseError(void)
{
  Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
  this->get_parseError((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj);
  return errorObj;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_url(BSTR* urlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("url"), DISPID(60));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(urlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_url(void)
{
  BSTR urlString;
  this->get_url((BSTR*)&urlString);
  return urlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_async(TOLEBOOL* isAsync/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("async"), DISPID(61));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isAsync /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_async(void)
{
  TOLEBOOL isAsync;
  this->get_async((TOLEBOOL*)&isAsync);
  return isAsync;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_async(TOLEBOOL isAsync/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("async"), DISPID(61));
  TAutoArgs<1> _args;
  _args[1] = isAsync /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(62));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::loadXML(BSTR bstrXML/*[in]*/, TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("loadXML"), DISPID(63));
  TAutoArgs<1> _args;
  _args[1] = bstrXML /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::loadXML(BSTR bstrXML/*[in]*/)
{
  TOLEBOOL isSuccessful;
  this->loadXML(bstrXML, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::save(TVariantInParam destination/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("save"), DISPID(64));
  TAutoArgs<1> _args;
  _args[1] = destination /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_validateOnParse(TOLEBOOL* isValidating/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnParse"), DISPID(65));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isValidating /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_validateOnParse(void)
{
  TOLEBOOL isValidating;
  this->get_validateOnParse((TOLEBOOL*)&isValidating);
  return isValidating;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_validateOnParse(TOLEBOOL isValidating/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnParse"), DISPID(65));
  TAutoArgs<1> _args;
  _args[1] = isValidating /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_resolveExternals(TOLEBOOL* isResolving/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("resolveExternals"), DISPID(66));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isResolving /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_resolveExternals(void)
{
  TOLEBOOL isResolving;
  this->get_resolveExternals((TOLEBOOL*)&isResolving);
  return isResolving;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_resolveExternals(TOLEBOOL isResolving/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("resolveExternals"), DISPID(66));
  TAutoArgs<1> _args;
  _args[1] = isResolving /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_preserveWhiteSpace(TOLEBOOL* isPreserving/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("preserveWhiteSpace"), DISPID(67));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isPreserving /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_preserveWhiteSpace(void)
{
  TOLEBOOL isPreserving;
  this->get_preserveWhiteSpace((TOLEBOOL*)&isPreserving);
  return isPreserving;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_preserveWhiteSpace(TOLEBOOL isPreserving/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("preserveWhiteSpace"), DISPID(67));
  TAutoArgs<1> _args;
  _args[1] = isPreserving /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_onreadystatechange(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("onreadystatechange"), DISPID(68));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_ondataavailable(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ondataavailable"), DISPID(69));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_ontransformnode(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ontransformnode"), DISPID(70));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMDocumentDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocumentDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      TVariantInParam refChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMDocumentDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                       BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                               TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMDocumentType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8B-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_name(BSTR* rootName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(131));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(rootName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_name(void)
{
  BSTR rootName;
  this->get_name((BSTR*)&rootName);
  return rootName;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_entities(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* entityMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("entities"), DISPID(132));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)entityMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_entities(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr entityMap;
  this->get_entities((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&entityMap);
  return entityMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_notations(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* notationMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("notations"), DISPID(133));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)notationMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_notations(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr notationMap;
  this->get_notations((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&notationMap);
  return notationMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentTypeDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentTypeDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentTypeDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentTypeDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentTypeDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentTypeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentTypeDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentTypeDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentTypeDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF86-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_tagName(BSTR* tagName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("tagName"), DISPID(97));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(tagName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_tagName(void)
{
  BSTR tagName;
  this->get_tagName((BSTR*)&tagName);
  return tagName;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::getAttribute(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAttribute"), DISPID(99));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMElementDispT<T>::getAttribute(BSTR name/*[in]*/)
{
  TVariant value;
  this->getAttribute(name, (TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::setAttribute(BSTR name/*[in]*/, TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttribute"), DISPID(100));
  TAutoArgs<2> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  _args[2] = value /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::removeAttribute(BSTR name/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeAttribute"), DISPID(101));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::getAttributeNode(BSTR name/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAttributeNode"), DISPID(102));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMAttribute**)attributeNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMAttributePtr __fastcall
IXMLDOMElementDispT<T>::getAttributeNode(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
  this->getAttributeNode(name, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode);
  return attributeNode;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttributeNode"), DISPID(103));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMAttribute*)DOMAttribute /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMAttribute**)attributeNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMAttributePtr __fastcall
IXMLDOMElementDispT<T>::setAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/)
{
  Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
  this->setAttributeNode(DOMAttribute, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode);
  return attributeNode;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMAttributePtr* attributeNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeAttributeNode"), DISPID(104));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMAttribute*)DOMAttribute /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMAttribute**)attributeNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMAttributePtr __fastcall
IXMLDOMElementDispT<T>::removeAttributeNode(Msxml2_tlb::IXMLDOMAttributePtr DOMAttribute/*[in]*/)
{
  Msxml2_tlb::IXMLDOMAttributePtr attributeNode;
  this->removeAttributeNode(DOMAttribute, (Msxml2_tlb::IXMLDOMAttributePtr*)&attributeNode);
  return attributeNode;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::getElementsByTagName(BSTR tagName/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getElementsByTagName"), DISPID(105));
  TAutoArgs<1> _args;
  _args[1] = tagName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMElementDispT<T>::getElementsByTagName(BSTR tagName/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->getElementsByTagName(tagName, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::normalize()
{
  _TDispID _dispid(*this, OLETEXT("normalize"), DISPID(106));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMElementDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMElementDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMElementDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMElementDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     TVariantInParam refChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMElementDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMElementDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMElementDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMElementDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMElementDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                      BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMElementDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMElementDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMElementDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMElementDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMElementDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                              TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF85-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_name(BSTR* attributeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(118));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(attributeName /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_name(void)
{
  BSTR attributeName;
  this->get_name((BSTR*)&attributeName);
  return attributeName;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_value(TVariant* attributeValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("value"), DISPID(120));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(attributeValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMAttributeDispT<T>::get_value(void)
{
  TVariant attributeValue;
  this->get_value((TVariant*)&attributeValue);
  return attributeValue;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::set_value(TVariantInParam attributeValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("value"), DISPID(120));
  TAutoArgs<1> _args;
  _args[1] = attributeValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMAttributeDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMAttributeDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMAttributeDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMAttributeDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       TVariantInParam refChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMAttributeDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMAttributeDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMAttributeDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMAttributeDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMAttributeDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                        BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMAttributeDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMAttributeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMAttributeDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMAttributeDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMAttributeDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMDocumentFragment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA413-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                              TVariantInParam refChild/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                              TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentFragmentDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                               BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocumentFragmentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocumentFragmentDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocumentFragmentDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/
                                                       , TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMCharacterData
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF84-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_data(BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_data(void)
{
  BSTR data;
  this->get_data((BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::set_data(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_length(long* dataLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMCharacterDataDispT<T>::get_length(void)
{
  long dataLength;
  this->get_length((long*)&dataLength);
  return dataLength;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/, 
                                            BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substringData"), DISPID(111));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/)
{
  BSTR data;
  this->substringData(offset, count, (BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::appendData(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendData"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::insertData(long offset/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertData"), DISPID(113));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::deleteData(long offset/*[in]*/, long count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("deleteData"), DISPID(114));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceData"), DISPID(115));
  TAutoArgs<3> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  _args[3] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                           TVariantInParam refChild/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                           TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCharacterDataDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCharacterDataDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCharacterDataDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCharacterDataDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                            BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCharacterDataDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                               Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCharacterDataDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCharacterDataDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCharacterDataDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMCharacterDataDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                    TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMText
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF87-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::splitText(long offset/*[in]*/, 
                               Msxml2_tlb::IXMLDOMTextPtr* rightHandTextNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("splitText"), DISPID(123));
  TAutoArgs<1> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMText**)rightHandTextNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMTextPtr __fastcall
IXMLDOMTextDispT<T>::splitText(long offset/*[in]*/)
{
  Msxml2_tlb::IXMLDOMTextPtr rightHandTextNode;
  this->splitText(offset, (Msxml2_tlb::IXMLDOMTextPtr*)&rightHandTextNode);
  return rightHandTextNode;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_data(BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_data(void)
{
  BSTR data;
  this->get_data((BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::set_data(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_length(long* dataLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMTextDispT<T>::get_length(void)
{
  long dataLength;
  this->get_length((long*)&dataLength);
  return dataLength;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/, 
                                   BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substringData"), DISPID(111));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/)
{
  BSTR data;
  this->substringData(offset, count, (BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::appendData(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendData"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::insertData(long offset/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertData"), DISPID(113));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::deleteData(long offset/*[in]*/, long count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("deleteData"), DISPID(114));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceData"), DISPID(115));
  TAutoArgs<3> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  _args[3] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMTextDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMTextDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMTextDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMTextDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMTextDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMTextDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                               Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMTextDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMTextDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMTextDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                   BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMTextDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMTextDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMTextDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMTextDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMTextDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMComment
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF88-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_data(BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_data(void)
{
  BSTR data;
  this->get_data((BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::set_data(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_length(long* dataLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMCommentDispT<T>::get_length(void)
{
  long dataLength;
  this->get_length((long*)&dataLength);
  return dataLength;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/, 
                                      BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substringData"), DISPID(111));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/)
{
  BSTR data;
  this->substringData(offset, count, (BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::appendData(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendData"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::insertData(long offset/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertData"), DISPID(113));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::deleteData(long offset/*[in]*/, long count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("deleteData"), DISPID(114));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceData"), DISPID(115));
  TAutoArgs<3> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  _args[3] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCommentDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMCommentDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCommentDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMCommentDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     TVariantInParam refChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCommentDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMCommentDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCommentDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCommentDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCommentDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                      BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCommentDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCommentDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCommentDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCommentDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMCommentDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                              TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMCDATASection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8A-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::splitText(long offset/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMTextPtr* rightHandTextNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("splitText"), DISPID(123));
  TAutoArgs<1> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMText**)rightHandTextNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMTextPtr __fastcall
IXMLDOMCDATASectionDispT<T>::splitText(long offset/*[in]*/)
{
  Msxml2_tlb::IXMLDOMTextPtr rightHandTextNode;
  this->splitText(offset, (Msxml2_tlb::IXMLDOMTextPtr*)&rightHandTextNode);
  return rightHandTextNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_data(BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_data(void)
{
  BSTR data;
  this->get_data((BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::set_data(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(109));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_length(long* dataLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(110));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMCDATASectionDispT<T>::get_length(void)
{
  long dataLength;
  this->get_length((long*)&dataLength);
  return dataLength;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/, 
                                           BSTR* data/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substringData"), DISPID(111));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OutRetValSetterPtr(data /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::substringData(long offset/*[in]*/, long count/*[in]*/)
{
  BSTR data;
  this->substringData(offset, count, (BSTR*)&data);
  return data;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::appendData(BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendData"), DISPID(112));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::insertData(long offset/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertData"), DISPID(113));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::deleteData(long offset/*[in]*/, long count/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("deleteData"), DISPID(114));
  TAutoArgs<2> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::replaceData(long offset/*[in]*/, long count/*[in]*/, BSTR data/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceData"), DISPID(115));
  TAutoArgs<3> _args;
  _args[1] = offset /*[VT_I4:0]*/;
  _args[2] = count /*[VT_I4:0]*/;
  _args[3] = data /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCDATASectionDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCDATASectionDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCDATASectionDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMCDATASectionDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMCDATASectionDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMCDATASectionDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMCDATASectionDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMCDATASectionDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMCDATASectionDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                   TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMProcessingInstruction
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF89-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_target(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("target"), DISPID(127));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_target(void)
{
  BSTR name;
  this->get_target((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_data(BSTR* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(128));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_data(void)
{
  BSTR value;
  this->get_data((BSTR*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::set_data(BSTR value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("data"), DISPID(128));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                   TVariantInParam refChild/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                   TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                   Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMProcessingInstructionDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                    BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                                  Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                                       Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMProcessingInstructionDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMProcessingInstructionDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMProcessingInstructionDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/
                                                            , TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMEntityReference
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8E-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                             TVariantInParam refChild/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                             TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityReferenceDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityReferenceDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityReferenceDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityReferenceDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                              BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                            Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMEntityReferenceDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                                 Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityReferenceDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityReferenceDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityReferenceDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityReferenceDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/
                                                      , TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMParseError
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA426-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_errorCode(long* errorCode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("errorCode"), DISPID(0));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(errorCode /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMParseErrorDispT<T>::get_errorCode(void)
{
  long errorCode;
  this->get_errorCode((long*)&errorCode);
  return errorCode;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_url(BSTR* urlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("url"), DISPID(179));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(urlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMParseErrorDispT<T>::get_url(void)
{
  BSTR urlString;
  this->get_url((BSTR*)&urlString);
  return urlString;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_reason(BSTR* reasonString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("reason"), DISPID(180));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(reasonString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMParseErrorDispT<T>::get_reason(void)
{
  BSTR reasonString;
  this->get_reason((BSTR*)&reasonString);
  return reasonString;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_srcText(BSTR* sourceString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("srcText"), DISPID(181));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(sourceString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMParseErrorDispT<T>::get_srcText(void)
{
  BSTR sourceString;
  this->get_srcText((BSTR*)&sourceString);
  return sourceString;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_line(long* lineNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("line"), DISPID(182));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(lineNumber /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMParseErrorDispT<T>::get_line(void)
{
  long lineNumber;
  this->get_line((long*)&lineNumber);
  return lineNumber;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_linepos(long* linePosition/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("linepos"), DISPID(183));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(linePosition /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMParseErrorDispT<T>::get_linepos(void)
{
  long linePosition;
  this->get_linepos((long*)&linePosition);
  return linePosition;
}

template <class T> HRESULT __fastcall
IXMLDOMParseErrorDispT<T>::get_filepos(long* filePosition/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("filepos"), DISPID(184));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(filePosition /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMParseErrorDispT<T>::get_filepos(void)
{
  long filePosition;
  this->get_filepos((long*)&filePosition);
  return filePosition;
}

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMDocument2
// Interface: IXMLDOMDocument2
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::get_namespaces(Msxml2_tlb::IXMLDOMSchemaCollectionPtr* namespaceCollection/*[out,retval]*/)
{
  return (*this)->get_namespaces(namespaceCollection);
}

template <class T> Msxml2_tlb::IXMLDOMSchemaCollectionPtr __fastcall
TCOMIXMLDOMDocument2T<T>::get_namespaces(void)
{
  Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaceCollection;
  OLECHECK(this->get_namespaces((Msxml2_tlb::IXMLDOMSchemaCollectionPtr*)&namespaceCollection));
  return namespaceCollection;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::get_schemas(TVariant* otherCollection/*[out,retval]*/)
{
  return (*this)->get_schemas(otherCollection);
}

template <class T> TVariant __fastcall
TCOMIXMLDOMDocument2T<T>::get_schemas(void)
{
  TVariant otherCollection;
  OLECHECK(this->get_schemas((TVariant*)&otherCollection));
  return otherCollection;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::_set_schemas(TVariantInParam otherCollection/*[in]*/)
{
  return (*this)->_set_schemas(otherCollection);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::validate(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/)
{
  return (*this)->validate(errorObj);
}

template <class T> Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall
TCOMIXMLDOMDocument2T<T>::validate(void)
{
  Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
  OLECHECK(this->validate((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj));
  return errorObj;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/)
{
  return (*this)->setProperty(name, value);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMDocument2T<T>::getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/)
{
  return (*this)->getProperty(name, value);
}

template <class T> TVariant __fastcall
TCOMIXMLDOMDocument2T<T>::getProperty(BSTR name/*[in]*/)
{
  TVariant value;
  OLECHECK(this->getProperty(name, (TVariant*)&value));
  return value;
}

// *********************************************************************//
// DispIntf:  IXMLDOMDocument2
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF95-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_namespaces(Msxml2_tlb::IXMLDOMSchemaCollectionPtr* namespaceCollection/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaces"), DISPID(201));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMSchemaCollection**)namespaceCollection /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMSchemaCollectionPtr __fastcall
IXMLDOMDocument2DispT<T>::get_namespaces(void)
{
  Msxml2_tlb::IXMLDOMSchemaCollectionPtr namespaceCollection;
  this->get_namespaces((Msxml2_tlb::IXMLDOMSchemaCollectionPtr*)&namespaceCollection);
  return namespaceCollection;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_schemas(TVariant* otherCollection/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schemas"), DISPID(202));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(otherCollection /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocument2DispT<T>::get_schemas(void)
{
  TVariant otherCollection;
  this->get_schemas((TVariant*)&otherCollection);
  return otherCollection;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::_set_schemas(TVariantInParam otherCollection/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("schemas"), DISPID(202));
  TAutoArgs<1> _args;
  _args[1] = otherCollection /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::validate(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("validate"), DISPID(203));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMParseError**)errorObj /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall
IXMLDOMDocument2DispT<T>::validate(void)
{
  Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
  this->validate((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj);
  return errorObj;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setProperty"), DISPID(204));
  TAutoArgs<2> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  _args[2] = value /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getProperty"), DISPID(205));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocument2DispT<T>::getProperty(BSTR name/*[in]*/)
{
  TVariant value;
  this->getProperty(name, (TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_doctype(Msxml2_tlb::IXMLDOMDocumentTypePtr* documentType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("doctype"), DISPID(38));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocumentType**)documentType /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentTypePtr __fastcall
IXMLDOMDocument2DispT<T>::get_doctype(void)
{
  Msxml2_tlb::IXMLDOMDocumentTypePtr documentType;
  this->get_doctype((Msxml2_tlb::IXMLDOMDocumentTypePtr*)&documentType);
  return documentType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_implementation(Msxml2_tlb::IXMLDOMImplementationPtr* impl/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("implementation"), DISPID(39));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMImplementation**)impl /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMImplementationPtr __fastcall
IXMLDOMDocument2DispT<T>::get_implementation(void)
{
  Msxml2_tlb::IXMLDOMImplementationPtr impl;
  this->get_implementation((Msxml2_tlb::IXMLDOMImplementationPtr*)&impl);
  return impl;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_documentElement(Msxml2_tlb::IXMLDOMElementPtr* DOMElement/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("documentElement"), DISPID(40));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMElement**)DOMElement /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMElementPtr __fastcall
IXMLDOMDocument2DispT<T>::get_documentElement(void)
{
  Msxml2_tlb::IXMLDOMElementPtr DOMElement;
  this->get_documentElement((Msxml2_tlb::IXMLDOMElementPtr*)&DOMElement);
  return DOMElement;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::_set_documentElement(Msxml2_tlb::IXMLDOMElementPtr DOMElement/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("documentElement"), DISPID(40));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMElement*)DOMElement /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createElement(BSTR tagName/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMElementPtr* element/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createElement"), DISPID(41));
  TAutoArgs<1> _args;
  _args[1] = tagName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMElement**)element /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMElementPtr __fastcall
IXMLDOMDocument2DispT<T>::createElement(BSTR tagName/*[in]*/)
{
  Msxml2_tlb::IXMLDOMElementPtr element;
  this->createElement(tagName, (Msxml2_tlb::IXMLDOMElementPtr*)&element);
  return element;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createDocumentFragment(Msxml2_tlb::IXMLDOMDocumentFragmentPtr* docFrag/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createDocumentFragment"), DISPID(42));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocumentFragment**)docFrag /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentFragmentPtr __fastcall
IXMLDOMDocument2DispT<T>::createDocumentFragment(void)
{
  Msxml2_tlb::IXMLDOMDocumentFragmentPtr docFrag;
  this->createDocumentFragment((Msxml2_tlb::IXMLDOMDocumentFragmentPtr*)&docFrag);
  return docFrag;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createTextNode(BSTR data/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMTextPtr* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createTextNode"), DISPID(43));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMText**)text /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMTextPtr __fastcall
IXMLDOMDocument2DispT<T>::createTextNode(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMTextPtr text;
  this->createTextNode(data, (Msxml2_tlb::IXMLDOMTextPtr*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createComment(BSTR data/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMCommentPtr* comment/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createComment"), DISPID(44));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMComment**)comment /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMCommentPtr __fastcall
IXMLDOMDocument2DispT<T>::createComment(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMCommentPtr comment;
  this->createComment(data, (Msxml2_tlb::IXMLDOMCommentPtr*)&comment);
  return comment;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createCDATASection(BSTR data/*[in]*/, 
                                             Msxml2_tlb::IXMLDOMCDATASectionPtr* cdata/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createCDATASection"), DISPID(45));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMCDATASection**)cdata /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMCDATASectionPtr __fastcall
IXMLDOMDocument2DispT<T>::createCDATASection(BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMCDATASectionPtr cdata;
  this->createCDATASection(data, (Msxml2_tlb::IXMLDOMCDATASectionPtr*)&cdata);
  return cdata;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/, 
                                                      Msxml2_tlb::IXMLDOMProcessingInstructionPtr* pi/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createProcessingInstruction"), DISPID(46));
  TAutoArgs<2> _args;
  _args[1] = target /*[VT_BSTR:0]*/;
  _args[2] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMProcessingInstruction**)pi /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMProcessingInstructionPtr __fastcall
IXMLDOMDocument2DispT<T>::createProcessingInstruction(BSTR target/*[in]*/, BSTR data/*[in]*/)
{
  Msxml2_tlb::IXMLDOMProcessingInstructionPtr pi;
  this->createProcessingInstruction(target, data, (Msxml2_tlb::IXMLDOMProcessingInstructionPtr*)&pi);
  return pi;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createAttribute(BSTR name/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMAttributePtr* attribute/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createAttribute"), DISPID(47));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMAttribute**)attribute /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMAttributePtr __fastcall
IXMLDOMDocument2DispT<T>::createAttribute(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMAttributePtr attribute;
  this->createAttribute(name, (Msxml2_tlb::IXMLDOMAttributePtr*)&attribute);
  return attribute;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createEntityReference(BSTR name/*[in]*/, 
                                                Msxml2_tlb::IXMLDOMEntityReferencePtr* entityRef/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createEntityReference"), DISPID(49));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMEntityReference**)entityRef /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMEntityReferencePtr __fastcall
IXMLDOMDocument2DispT<T>::createEntityReference(BSTR name/*[in]*/)
{
  Msxml2_tlb::IXMLDOMEntityReferencePtr entityRef;
  this->createEntityReference(name, (Msxml2_tlb::IXMLDOMEntityReferencePtr*)&entityRef);
  return entityRef;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::getElementsByTagName(BSTR tagName/*[in]*/, 
                                               Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getElementsByTagName"), DISPID(50));
  TAutoArgs<1> _args;
  _args[1] = tagName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocument2DispT<T>::getElementsByTagName(BSTR tagName/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->getElementsByTagName(tagName, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                     BSTR namespaceURI/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createNode"), DISPID(54));
  TAutoArgs<3> _args;
  _args[1] = type /*[VT_VARIANT:0]*/;
  _args[2] = name /*[VT_BSTR:0]*/;
  _args[3] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)node /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::createNode(TVariantInParam type/*[in]*/, BSTR name/*[in]*/, 
                                     BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr node;
  this->createNode(type, name, namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&node);
  return node;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::nodeFromID(BSTR idString/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* node/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeFromID"), DISPID(56));
  TAutoArgs<1> _args;
  _args[1] = idString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)node /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::nodeFromID(BSTR idString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr node;
  this->nodeFromID(idString, (Msxml2_tlb::IXMLDOMNodePtr*)&node);
  return node;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::load(TVariantInParam xmlSource/*[in]*/, 
                               TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("load"), DISPID(58));
  TAutoArgs<1> _args;
  _args[1] = xmlSource /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::load(TVariantInParam xmlSource/*[in]*/)
{
  TOLEBOOL isSuccessful;
  this->load(xmlSource, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_readyState(long* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(-525));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMDocument2DispT<T>::get_readyState(void)
{
  long value;
  this->get_readyState((long*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_parseError(Msxml2_tlb::IXMLDOMParseErrorPtr* errorObj/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parseError"), DISPID(59));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMParseError**)errorObj /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMParseErrorPtr __fastcall
IXMLDOMDocument2DispT<T>::get_parseError(void)
{
  Msxml2_tlb::IXMLDOMParseErrorPtr errorObj;
  this->get_parseError((Msxml2_tlb::IXMLDOMParseErrorPtr*)&errorObj);
  return errorObj;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_url(BSTR* urlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("url"), DISPID(60));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(urlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_url(void)
{
  BSTR urlString;
  this->get_url((BSTR*)&urlString);
  return urlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_async(TOLEBOOL* isAsync/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("async"), DISPID(61));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isAsync /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_async(void)
{
  TOLEBOOL isAsync;
  this->get_async((TOLEBOOL*)&isAsync);
  return isAsync;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_async(TOLEBOOL isAsync/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("async"), DISPID(61));
  TAutoArgs<1> _args;
  _args[1] = isAsync /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(62));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::loadXML(BSTR bstrXML/*[in]*/, TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("loadXML"), DISPID(63));
  TAutoArgs<1> _args;
  _args[1] = bstrXML /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::loadXML(BSTR bstrXML/*[in]*/)
{
  TOLEBOOL isSuccessful;
  this->loadXML(bstrXML, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::save(TVariantInParam destination/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("save"), DISPID(64));
  TAutoArgs<1> _args;
  _args[1] = destination /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_validateOnParse(TOLEBOOL* isValidating/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnParse"), DISPID(65));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isValidating /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_validateOnParse(void)
{
  TOLEBOOL isValidating;
  this->get_validateOnParse((TOLEBOOL*)&isValidating);
  return isValidating;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_validateOnParse(TOLEBOOL isValidating/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnParse"), DISPID(65));
  TAutoArgs<1> _args;
  _args[1] = isValidating /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_resolveExternals(TOLEBOOL* isResolving/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("resolveExternals"), DISPID(66));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isResolving /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_resolveExternals(void)
{
  TOLEBOOL isResolving;
  this->get_resolveExternals((TOLEBOOL*)&isResolving);
  return isResolving;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_resolveExternals(TOLEBOOL isResolving/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("resolveExternals"), DISPID(66));
  TAutoArgs<1> _args;
  _args[1] = isResolving /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_preserveWhiteSpace(TOLEBOOL* isPreserving/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("preserveWhiteSpace"), DISPID(67));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isPreserving /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_preserveWhiteSpace(void)
{
  TOLEBOOL isPreserving;
  this->get_preserveWhiteSpace((TOLEBOOL*)&isPreserving);
  return isPreserving;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_preserveWhiteSpace(TOLEBOOL isPreserving/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("preserveWhiteSpace"), DISPID(67));
  TAutoArgs<1> _args;
  _args[1] = isPreserving /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_onreadystatechange(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("onreadystatechange"), DISPID(68));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_ondataavailable(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ondataavailable"), DISPID(69));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_ontransformnode(TVariantInParam Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ontransformnode"), DISPID(70));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocument2DispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMDocument2DispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocument2DispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMDocument2DispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       TVariantInParam refChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                       Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMDocument2DispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocument2DispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMDocument2DispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                        BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMDocument2DispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                           Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMDocument2DispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMDocument2DispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMDocument2DispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMDocument2DispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                                TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMSchemaCollection
// Interface: IXMLDOMSchemaCollection
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/)
{
  return (*this)->add(namespaceURI, var);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get(BSTR namespaceURI/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/)
{
  return (*this)->get(namespaceURI, schemaNode);
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr schemaNode;
  OLECHECK(this->get(namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&schemaNode));
  return schemaNode;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::remove(BSTR namespaceURI/*[in]*/)
{
  return (*this)->remove(namespaceURI);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get_length(long* length/*[out,retval]*/)
{
  return (*this)->get_length(length);
}

template <class T> long __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get_length(void)
{
  long length;
  OLECHECK(this->get_length((long*)&length));
  return length;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/)
{
  return (*this)->get_namespaceURI(index, length);
}

template <class T> BSTR __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get_namespaceURI(long index/*[in]*/)
{
  BSTR length = 0;
  OLECHECK(this->get_namespaceURI(index, (BSTR*)&length));
  return length;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/)
{
  return (*this)->addCollection(otherCollection);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  return (*this)->get__newEnum(ppUnk);
}

template <class T> LPUNKNOWN __fastcall
TCOMIXMLDOMSchemaCollectionT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  OLECHECK(this->get__newEnum((LPUNKNOWN*)&ppUnk));
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  IXMLDOMSchemaCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {373984C8-B845-449B-91E7-45AC83036ADE}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("add"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  _args[2] = var /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::get(BSTR namespaceURI/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("get"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)schemaNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSchemaCollectionDispT<T>::get(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr schemaNode;
  this->get(namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&schemaNode);
  return schemaNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::remove(BSTR namespaceURI/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("remove"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::get_length(long* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMSchemaCollectionDispT<T>::get_length(void)
{
  long length;
  this->get_length((long*)&length);
  return length;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(length /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMSchemaCollectionDispT<T>::get_namespaceURI(long index/*[in]*/)
{
  BSTR length;
  this->get_namespaceURI(index, (BSTR*)&length);
  return length;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("addCollection"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMSchemaCollection*)otherCollection /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollectionDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLDOMSchemaCollectionDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  IXMLDOMNotation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8C-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_publicId(TVariant* publicId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("publicId"), DISPID(136));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(publicId /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNotationDispT<T>::get_publicId(void)
{
  TVariant publicId;
  this->get_publicId((TVariant*)&publicId);
  return publicId;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_systemId(TVariant* systemId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("systemId"), DISPID(137));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(systemId /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNotationDispT<T>::get_systemId(void)
{
  TVariant systemId;
  this->get_systemId((TVariant*)&systemId);
  return systemId;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNotationDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMNotationDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMNotationDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMNotationDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      TVariantInParam refChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNotationDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMNotationDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNotationDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNotationDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMNotationDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                       BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                     Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMNotationDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                          Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMNotationDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMNotationDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMNotationDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMNotationDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                               TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLDOMEntity
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF8D-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_publicId(TVariant* publicId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("publicId"), DISPID(140));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(publicId /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityDispT<T>::get_publicId(void)
{
  TVariant publicId;
  this->get_publicId((TVariant*)&publicId);
  return publicId;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_systemId(TVariant* systemId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("systemId"), DISPID(141));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(systemId /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityDispT<T>::get_systemId(void)
{
  TVariant systemId;
  this->get_systemId((TVariant*)&systemId);
  return systemId;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_notationName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("notationName"), DISPID(142));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_notationName(void)
{
  BSTR name;
  this->get_notationName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXMLDOMEntityDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMEntityDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXMLDOMEntityDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    TVariantInParam refChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                    Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXMLDOMEntityDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMEntityDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                     BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXMLDOMEntityDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                        Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMEntityDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMEntityDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMEntityDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXMLDOMEntityDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                             TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXTLRuntime
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {3EFAA425-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, long* pID/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("uniqueID"), DISPID(187));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(pID /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IXTLRuntimeDispT<T>::uniqueID(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  long pID;
  this->uniqueID(pNode, (long*)&pID);
  return pID;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, long* pDepth/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("depth"), DISPID(188));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(pDepth /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IXTLRuntimeDispT<T>::depth(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  long pDepth;
  this->depth(pNode, (long*)&pDepth);
  return pDepth;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                 long* pNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNumber"), DISPID(189));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(pNumber /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IXTLRuntimeDispT<T>::childNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  long pNumber;
  this->childNumber(pNode, (long*)&pNumber);
  return pNumber;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                         long* pNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ancestorChildNumber"), DISPID(190));
  TAutoArgs<2> _args;
  _args[1] = bstrNodeName /*[VT_BSTR:0]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(pNumber /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IXTLRuntimeDispT<T>::ancestorChildNumber(BSTR bstrNodeName/*[in]*/, 
                                         Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  long pNumber;
  this->ancestorChildNumber(bstrNodeName, pNode, (long*)&pNumber);
  return pNumber;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                         long* pNumber/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("absoluteChildNumber"), DISPID(191));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(pNumber /*[VT_I4:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> long __fastcall
IXTLRuntimeDispT<T>::absoluteChildNumber(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  long pNumber;
  this->absoluteChildNumber(pNode, (long*)&pNumber);
  return pNumber;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                 BSTR* pbstrFormattedString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("formatIndex"), DISPID(192));
  TAutoArgs<2> _args;
  _args[1] = lIndex /*[VT_I4:0]*/;
  _args[2] = bstrFormat /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(pbstrFormattedString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::formatIndex(long lIndex/*[in]*/, BSTR bstrFormat/*[in]*/)
{
  BSTR pbstrFormattedString;
  this->formatIndex(lIndex, bstrFormat, (BSTR*)&pbstrFormattedString);
  return pbstrFormattedString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                  BSTR* pbstrFormattedString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("formatNumber"), DISPID(193));
  TAutoArgs<2> _args;
  _args[1] = dblNumber /*[VT_R8:0]*/;
  _args[2] = bstrFormat /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(pbstrFormattedString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::formatNumber(double dblNumber/*[in]*/, BSTR bstrFormat/*[in]*/)
{
  BSTR pbstrFormattedString;
  this->formatNumber(dblNumber, bstrFormat, (BSTR*)&pbstrFormattedString);
  return pbstrFormattedString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::formatDate(TVariantInParam varDate/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                TVariantInParam varDestLocale/*[in,opt]*/, 
                                BSTR* pbstrFormattedString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("formatDate"), DISPID(194));
  TAutoArgs<3> _args;
  _args[1] = varDate /*[VT_VARIANT:0]*/;
  _args[2] = bstrFormat /*[VT_BSTR:0]*/;
  _args[3] = varDestLocale /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(pbstrFormattedString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::formatDate(TVariantInParam varDate/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                TVariantInParam varDestLocale/*[in,opt]*/)
{
  BSTR pbstrFormattedString;
  this->formatDate(varDate, bstrFormat, varDestLocale, (BSTR*)&pbstrFormattedString);
  return pbstrFormattedString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::formatTime(TVariantInParam varTime/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                TVariantInParam varDestLocale/*[in,opt]*/, 
                                BSTR* pbstrFormattedString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("formatTime"), DISPID(195));
  TAutoArgs<3> _args;
  _args[1] = varTime /*[VT_VARIANT:0]*/;
  _args[2] = bstrFormat /*[VT_BSTR:0]*/;
  _args[3] = varDestLocale /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(pbstrFormattedString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::formatTime(TVariantInParam varTime/*[in]*/, BSTR bstrFormat/*[in]*/, 
                                TVariantInParam varDestLocale/*[in,opt]*/)
{
  BSTR pbstrFormattedString;
  this->formatTime(varTime, bstrFormat, varDestLocale, (BSTR*)&pbstrFormattedString);
  return pbstrFormattedString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nodeName(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeName"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_nodeName(void)
{
  BSTR name;
  this->get_nodeName((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nodeValue(TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXTLRuntimeDispT<T>::get_nodeValue(void)
{
  TVariant value;
  this->get_nodeValue((TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::set_nodeValue(TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeValue"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = value /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nodeType(Msxml2_tlb::DOMNodeType* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeType"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)type /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::DOMNodeType __fastcall
IXTLRuntimeDispT<T>::get_nodeType(void)
{
  Msxml2_tlb::DOMNodeType type;
  this->get_nodeType((Msxml2_tlb::DOMNodeType*)&type);
  return type;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_parentNode(Msxml2_tlb::IXMLDOMNodePtr* parent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parentNode"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)parent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_parentNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr parent;
  this->get_parentNode((Msxml2_tlb::IXMLDOMNodePtr*)&parent);
  return parent;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_childNodes(Msxml2_tlb::IXMLDOMNodeListPtr* childList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("childNodes"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)childList /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXTLRuntimeDispT<T>::get_childNodes(void)
{
  Msxml2_tlb::IXMLDOMNodeListPtr childList;
  this->get_childNodes((Msxml2_tlb::IXMLDOMNodeListPtr*)&childList);
  return childList;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_firstChild(Msxml2_tlb::IXMLDOMNodePtr* firstChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("firstChild"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)firstChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_firstChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr firstChild;
  this->get_firstChild((Msxml2_tlb::IXMLDOMNodePtr*)&firstChild);
  return firstChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_lastChild(Msxml2_tlb::IXMLDOMNodePtr* lastChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lastChild"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)lastChild /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_lastChild(void)
{
  Msxml2_tlb::IXMLDOMNodePtr lastChild;
  this->get_lastChild((Msxml2_tlb::IXMLDOMNodePtr*)&lastChild);
  return lastChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_previousSibling(Msxml2_tlb::IXMLDOMNodePtr* previousSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("previousSibling"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)previousSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_previousSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr previousSibling;
  this->get_previousSibling((Msxml2_tlb::IXMLDOMNodePtr*)&previousSibling);
  return previousSibling;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nextSibling(Msxml2_tlb::IXMLDOMNodePtr* nextSibling/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextSibling"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextSibling /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_nextSibling(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextSibling;
  this->get_nextSibling((Msxml2_tlb::IXMLDOMNodePtr*)&nextSibling);
  return nextSibling;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_attributes(Msxml2_tlb::IXMLDOMNamedNodeMapPtr* attributeMap/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNamedNodeMap**)attributeMap /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNamedNodeMapPtr __fastcall
IXTLRuntimeDispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLDOMNamedNodeMapPtr attributeMap;
  this->get_attributes((Msxml2_tlb::IXMLDOMNamedNodeMapPtr*)&attributeMap);
  return attributeMap;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("insertBefore"), DISPID(13));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = refChild /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::insertBefore(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  TVariantInParam refChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->insertBefore(newChild, refChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* outOldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("replaceChild"), DISPID(14));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)oldChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outOldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::replaceChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr oldChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outOldChild;
  this->replaceChild(newChild, oldChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outOldChild);
  return outOldChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* oldChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(15));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)childNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)oldChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::removeChild(Msxml2_tlb::IXMLDOMNodePtr childNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr oldChild;
  this->removeChild(childNode, (Msxml2_tlb::IXMLDOMNodePtr*)&oldChild);
  return oldChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodePtr* outNewChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("appendChild"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)newChild /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)outNewChild /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::appendChild(Msxml2_tlb::IXMLDOMNodePtr newChild/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr outNewChild;
  this->appendChild(newChild, (Msxml2_tlb::IXMLDOMNodePtr*)&outNewChild);
  return outNewChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::hasChildNodes(TOLEBOOL* hasChild/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("hasChildNodes"), DISPID(17));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(hasChild /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXTLRuntimeDispT<T>::hasChildNodes(void)
{
  TOLEBOOL hasChild;
  this->hasChildNodes((TOLEBOOL*)&hasChild);
  return hasChild;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_ownerDocument(Msxml2_tlb::IXMLDOMDocumentPtr* DOMDocument/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerDocument"), DISPID(18));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)DOMDocument /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IXTLRuntimeDispT<T>::get_ownerDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr DOMDocument;
  this->get_ownerDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&DOMDocument);
  return DOMDocument;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/, 
                               Msxml2_tlb::IXMLDOMNodePtr* cloneRoot/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("cloneNode"), DISPID(19));
  TAutoArgs<1> _args;
  _args[1] = deep /*[VT_BOOL:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)cloneRoot /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::cloneNode(TOLEBOOL deep/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr cloneRoot;
  this->cloneNode(deep, (Msxml2_tlb::IXMLDOMNodePtr*)&cloneRoot);
  return cloneRoot;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nodeTypeString(BSTR* nodeType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypeString"), DISPID(21));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nodeType /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_nodeTypeString(void)
{
  BSTR nodeType;
  this->get_nodeTypeString((BSTR*)&nodeType);
  return nodeType;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_text(BSTR* text/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(text /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_text(void)
{
  BSTR text;
  this->get_text((BSTR*)&text);
  return text;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::set_text(BSTR text/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(24));
  TAutoArgs<1> _args;
  _args[1] = text /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_specified(TOLEBOOL* isSpecified/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("specified"), DISPID(22));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isSpecified /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXTLRuntimeDispT<T>::get_specified(void)
{
  TOLEBOOL isSpecified;
  this->get_specified((TOLEBOOL*)&isSpecified);
  return isSpecified;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_definition(Msxml2_tlb::IXMLDOMNodePtr* definitionNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("definition"), DISPID(23));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)definitionNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::get_definition(void)
{
  Msxml2_tlb::IXMLDOMNodePtr definitionNode;
  this->get_definition((Msxml2_tlb::IXMLDOMNodePtr*)&definitionNode);
  return definitionNode;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_nodeTypedValue(TVariant* typedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(typedValue /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXTLRuntimeDispT<T>::get_nodeTypedValue(void)
{
  TVariant typedValue;
  this->get_nodeTypedValue((TVariant*)&typedValue);
  return typedValue;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::set_nodeTypedValue(TVariantInParam typedValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("nodeTypedValue"), DISPID(25));
  TAutoArgs<1> _args;
  _args[1] = typedValue /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_dataType(TVariant* dataTypeName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(dataTypeName /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXTLRuntimeDispT<T>::get_dataType(void)
{
  TVariant dataTypeName;
  this->get_dataType((TVariant*)&dataTypeName);
  return dataTypeName;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::set_dataType(BSTR dataTypeName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dataType"), DISPID(26));
  TAutoArgs<1> _args;
  _args[1] = dataTypeName /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_xml(BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("xml"), DISPID(27));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_xml(void)
{
  BSTR xmlString;
  this->get_xml((BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                   BSTR* xmlString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNode"), DISPID(28));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(xmlString /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::transformNode(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  BSTR xmlString;
  this->transformNode(stylesheet, (BSTR*)&xmlString);
  return xmlString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::selectNodes(BSTR queryString/*[in]*/, 
                                 Msxml2_tlb::IXMLDOMNodeListPtr* resultList/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectNodes"), DISPID(29));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNodeList**)resultList /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodeListPtr __fastcall
IXTLRuntimeDispT<T>::selectNodes(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodeListPtr resultList;
  this->selectNodes(queryString, (Msxml2_tlb::IXMLDOMNodeListPtr*)&resultList);
  return resultList;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* resultNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selectSingleNode"), DISPID(30));
  TAutoArgs<1> _args;
  _args[1] = queryString /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)resultNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXTLRuntimeDispT<T>::selectSingleNode(BSTR queryString/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr resultNode;
  this->selectSingleNode(queryString, (Msxml2_tlb::IXMLDOMNodePtr*)&resultNode);
  return resultNode;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_parsed(TOLEBOOL* isParsed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parsed"), DISPID(31));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(isParsed /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXTLRuntimeDispT<T>::get_parsed(void)
{
  TOLEBOOL isParsed;
  this->get_parsed((TOLEBOOL*)&isParsed);
  return isParsed;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(32));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_prefix(BSTR* prefixString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prefix"), DISPID(33));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(prefixString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_prefix(void)
{
  BSTR prefixString;
  this->get_prefix((BSTR*)&prefixString);
  return prefixString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::get_baseName(BSTR* nameString/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseName"), DISPID(34));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nameString /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXTLRuntimeDispT<T>::get_baseName(void)
{
  BSTR nameString;
  this->get_baseName((BSTR*)&nameString);
  return nameString;
}

template <class T> HRESULT __fastcall
IXTLRuntimeDispT<T>::transformNodeToObject(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/, 
                                           TVariantInParam outputObject/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("transformNodeToObject"), DISPID(35));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  _args[2] = outputObject /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIXSLTemplate
// Interface: IXSLTemplate
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIXSLTemplateT<T>::_set_stylesheet(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  return (*this)->_set_stylesheet(stylesheet);
}

template <class T> HRESULT __fastcall
TCOMIXSLTemplateT<T>::get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/)
{
  return (*this)->get_stylesheet(stylesheet);
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
TCOMIXSLTemplateT<T>::get_stylesheet(void)
{
  Msxml2_tlb::IXMLDOMNodePtr stylesheet;
  OLECHECK(this->get_stylesheet((Msxml2_tlb::IXMLDOMNodePtr*)&stylesheet));
  return stylesheet;
}

template <class T> HRESULT __fastcall
TCOMIXSLTemplateT<T>::createProcessor(Msxml2_tlb::IXSLProcessorPtr* ppProcessor/*[out,retval]*/)
{
  return (*this)->createProcessor(ppProcessor);
}

template <class T> Msxml2_tlb::IXSLProcessorPtr __fastcall
TCOMIXSLTemplateT<T>::createProcessor(void)
{
  Msxml2_tlb::IXSLProcessorPtr ppProcessor;
  OLECHECK(this->createProcessor((Msxml2_tlb::IXSLProcessorPtr*)&ppProcessor));
  return ppProcessor;
}

// *********************************************************************//
// DispIntf:  IXSLTemplate
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF93-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXSLTemplateDispT<T>::_set_stylesheet(Msxml2_tlb::IXMLDOMNodePtr stylesheet/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("stylesheet"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)stylesheet /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLTemplateDispT<T>::get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("stylesheet"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)stylesheet /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXSLTemplateDispT<T>::get_stylesheet(void)
{
  Msxml2_tlb::IXMLDOMNodePtr stylesheet;
  this->get_stylesheet((Msxml2_tlb::IXMLDOMNodePtr*)&stylesheet);
  return stylesheet;
}

template <class T> HRESULT __fastcall
IXSLTemplateDispT<T>::createProcessor(Msxml2_tlb::IXSLProcessorPtr* ppProcessor/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createProcessor"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXSLProcessor**)ppProcessor /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXSLProcessorPtr __fastcall
IXSLTemplateDispT<T>::createProcessor(void)
{
  Msxml2_tlb::IXSLProcessorPtr ppProcessor;
  this->createProcessor((Msxml2_tlb::IXSLProcessorPtr*)&ppProcessor);
  return ppProcessor;
}

// *********************************************************************//
// DispIntf:  IXSLProcessor
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2933BF92-7B36-11D2-B20E-00C04F983E60}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::set_input(TVariantInParam pVar/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("input"), DISPID(2));
  TAutoArgs<1> _args;
  _args[1] = pVar /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_input(TVariant* pVar/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("input"), DISPID(2));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pVar /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXSLProcessorDispT<T>::get_input(void)
{
  TVariant pVar;
  this->get_input((TVariant*)&pVar);
  return pVar;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_ownerTemplate(Msxml2_tlb::IXSLTemplatePtr* ppTemplate/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("ownerTemplate"), DISPID(3));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXSLTemplate**)ppTemplate /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXSLTemplatePtr __fastcall
IXSLProcessorDispT<T>::get_ownerTemplate(void)
{
  Msxml2_tlb::IXSLTemplatePtr ppTemplate;
  this->get_ownerTemplate((Msxml2_tlb::IXSLTemplatePtr*)&ppTemplate);
  return ppTemplate;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::setStartMode(BSTR mode/*[in]*/, BSTR namespaceURI/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("setStartMode"), DISPID(4));
  TAutoArgs<2> _args;
  _args[1] = mode /*[VT_BSTR:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_startMode(BSTR* mode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("startMode"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(mode /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXSLProcessorDispT<T>::get_startMode(void)
{
  BSTR mode;
  this->get_startMode((BSTR*)&mode);
  return mode;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_startModeURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("startModeURI"), DISPID(6));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXSLProcessorDispT<T>::get_startModeURI(void)
{
  BSTR namespaceURI;
  this->get_startModeURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::set_output(TVariantInParam pOutput/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("output"), DISPID(7));
  TAutoArgs<1> _args;
  _args[1] = pOutput /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_output(TVariant* pOutput/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("output"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pOutput /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXSLProcessorDispT<T>::get_output(void)
{
  TVariant pOutput;
  this->get_output((TVariant*)&pOutput);
  return pOutput;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::transform(TOLEBOOL* pDone/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("transform"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pDone /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXSLProcessorDispT<T>::transform(void)
{
  TOLEBOOL pDone;
  this->transform((TOLEBOOL*)&pDone);
  return pDone;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::reset()
{
  _TDispID _dispid(*this, OLETEXT("reset"), DISPID(9));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_readyState(long* pReadyState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pReadyState /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXSLProcessorDispT<T>::get_readyState(void)
{
  long pReadyState;
  this->get_readyState((long*)&pReadyState);
  return pReadyState;
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::addParameter(BSTR baseName/*[in]*/, TVariantInParam parameter/*[in]*/, 
                                    BSTR namespaceURI/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("addParameter"), DISPID(11));
  TAutoArgs<3> _args;
  _args[1] = baseName /*[VT_BSTR:0]*/;
  _args[2] = parameter /*[VT_VARIANT:0]*/;
  _args[3] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::addObject(LPDISPATCH obj/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("addObject"), DISPID(12));
  TAutoArgs<2> _args;
  _args[1] = obj /*[VT_DISPATCH:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXSLProcessorDispT<T>::get_stylesheet(Msxml2_tlb::IXMLDOMNodePtr* stylesheet/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("stylesheet"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)stylesheet /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXSLProcessorDispT<T>::get_stylesheet(void)
{
  Msxml2_tlb::IXMLDOMNodePtr stylesheet;
  this->get_stylesheet((Msxml2_tlb::IXMLDOMNodePtr*)&stylesheet);
  return stylesheet;
}

// *********************************************************************//
// SmartIntf: TCOMIVBSAXXMLReader
// Interface: IVBSAXXMLReader
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::getFeature(BSTR strName/*[in]*/, TOLEBOOL* fValue/*[out,retval]*/)
{
  return (*this)->getFeature(strName, fValue);
}

template <class T> TOLEBOOL __fastcall
TCOMIVBSAXXMLReaderT<T>::getFeature(BSTR strName/*[in]*/)
{
  TOLEBOOL fValue;
  OLECHECK(this->getFeature(strName, (TOLEBOOL*)&fValue));
  return fValue;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::putFeature(BSTR strName/*[in]*/, TOLEBOOL fValue/*[in]*/)
{
  return (*this)->putFeature(strName, fValue);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::getProperty(BSTR strName/*[in]*/, TVariant* varValue/*[out,retval]*/)
{
  return (*this)->getProperty(strName, varValue);
}

template <class T> TVariant __fastcall
TCOMIVBSAXXMLReaderT<T>::getProperty(BSTR strName/*[in]*/)
{
  TVariant varValue;
  OLECHECK(this->getProperty(strName, (TVariant*)&varValue));
  return varValue;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::putProperty(BSTR strName/*[in]*/, TVariantInParam varValue/*[in]*/)
{
  return (*this)->putProperty(strName, varValue);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr* oResolver/*[out,retval]*/)
{
  return (*this)->get_entityResolver(oResolver);
}

template <class T> Msxml2_tlb::IVBSAXEntityResolverPtr __fastcall
TCOMIVBSAXXMLReaderT<T>::get_entityResolver(void)
{
  Msxml2_tlb::IVBSAXEntityResolverPtr oResolver;
  OLECHECK(this->get_entityResolver((Msxml2_tlb::IVBSAXEntityResolverPtr*)&oResolver));
  return oResolver;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::_set_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr oResolver/*[in]*/)
{
  return (*this)->_set_entityResolver(oResolver);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr* oHandler/*[out,retval]*/)
{
  return (*this)->get_contentHandler(oHandler);
}

template <class T> Msxml2_tlb::IVBSAXContentHandlerPtr __fastcall
TCOMIVBSAXXMLReaderT<T>::get_contentHandler(void)
{
  Msxml2_tlb::IVBSAXContentHandlerPtr oHandler;
  OLECHECK(this->get_contentHandler((Msxml2_tlb::IVBSAXContentHandlerPtr*)&oHandler));
  return oHandler;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::_set_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr oHandler/*[in]*/)
{
  return (*this)->_set_contentHandler(oHandler);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr* oHandler/*[out,retval]*/)
{
  return (*this)->get_dtdHandler(oHandler);
}

template <class T> Msxml2_tlb::IVBSAXDTDHandlerPtr __fastcall
TCOMIVBSAXXMLReaderT<T>::get_dtdHandler(void)
{
  Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler;
  OLECHECK(this->get_dtdHandler((Msxml2_tlb::IVBSAXDTDHandlerPtr*)&oHandler));
  return oHandler;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::_set_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler/*[in]*/)
{
  return (*this)->_set_dtdHandler(oHandler);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr* oHandler/*[out,retval]*/)
{
  return (*this)->get_errorHandler(oHandler);
}

template <class T> Msxml2_tlb::IVBSAXErrorHandlerPtr __fastcall
TCOMIVBSAXXMLReaderT<T>::get_errorHandler(void)
{
  Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler;
  OLECHECK(this->get_errorHandler((Msxml2_tlb::IVBSAXErrorHandlerPtr*)&oHandler));
  return oHandler;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::_set_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler/*[in]*/)
{
  return (*this)->_set_errorHandler(oHandler);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_baseURL(BSTR* strBaseURL/*[out,retval]*/)
{
  return (*this)->get_baseURL(strBaseURL);
}

template <class T> BSTR __fastcall
TCOMIVBSAXXMLReaderT<T>::get_baseURL(void)
{
  BSTR strBaseURL = 0;
  OLECHECK(this->get_baseURL((BSTR*)&strBaseURL));
  return strBaseURL;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::set_baseURL(BSTR strBaseURL/*[in]*/)
{
  return (*this)->set_baseURL(strBaseURL);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::get_secureBaseURL(BSTR* strSecureBaseURL/*[out,retval]*/)
{
  return (*this)->get_secureBaseURL(strSecureBaseURL);
}

template <class T> BSTR __fastcall
TCOMIVBSAXXMLReaderT<T>::get_secureBaseURL(void)
{
  BSTR strSecureBaseURL = 0;
  OLECHECK(this->get_secureBaseURL((BSTR*)&strSecureBaseURL));
  return strSecureBaseURL;
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::set_secureBaseURL(BSTR strSecureBaseURL/*[in]*/)
{
  return (*this)->set_secureBaseURL(strSecureBaseURL);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::parse(TVariantInParam varInput/*[in]*/)
{
  return (*this)->parse(varInput);
}

template <class T> HRESULT __fastcall
TCOMIVBSAXXMLReaderT<T>::parseURL(BSTR strURL/*[in]*/)
{
  return (*this)->parseURL(strURL);
}

// *********************************************************************//
// DispIntf:  IVBSAXXMLReader
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {8C033CAA-6CD6-4F73-B728-4531AF74945F}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::getFeature(BSTR strName/*[in]*/, TOLEBOOL* fValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getFeature"), DISPID(1282));
  TAutoArgs<1> _args;
  _args[1] = strName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(fValue /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVBSAXXMLReaderDispT<T>::getFeature(BSTR strName/*[in]*/)
{
  TOLEBOOL fValue;
  this->getFeature(strName, (TOLEBOOL*)&fValue);
  return fValue;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::putFeature(BSTR strName/*[in]*/, TOLEBOOL fValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("putFeature"), DISPID(1283));
  TAutoArgs<2> _args;
  _args[1] = strName /*[VT_BSTR:0]*/;
  _args[2] = fValue /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::getProperty(BSTR strName/*[in]*/, TVariant* varValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getProperty"), DISPID(1284));
  TAutoArgs<1> _args;
  _args[1] = strName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(varValue /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IVBSAXXMLReaderDispT<T>::getProperty(BSTR strName/*[in]*/)
{
  TVariant varValue;
  this->getProperty(strName, (TVariant*)&varValue);
  return varValue;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::putProperty(BSTR strName/*[in]*/, TVariantInParam varValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("putProperty"), DISPID(1285));
  TAutoArgs<2> _args;
  _args[1] = strName /*[VT_BSTR:0]*/;
  _args[2] = varValue /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr* oResolver/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("entityResolver"), DISPID(1286));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXEntityResolver**)oResolver /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXEntityResolverPtr __fastcall
IVBSAXXMLReaderDispT<T>::get_entityResolver(void)
{
  Msxml2_tlb::IVBSAXEntityResolverPtr oResolver;
  this->get_entityResolver((Msxml2_tlb::IVBSAXEntityResolverPtr*)&oResolver);
  return oResolver;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::_set_entityResolver(Msxml2_tlb::IVBSAXEntityResolverPtr oResolver/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("entityResolver"), DISPID(1286));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXEntityResolver*)oResolver /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr* oHandler/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("contentHandler"), DISPID(1287));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXContentHandler**)oHandler /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXContentHandlerPtr __fastcall
IVBSAXXMLReaderDispT<T>::get_contentHandler(void)
{
  Msxml2_tlb::IVBSAXContentHandlerPtr oHandler;
  this->get_contentHandler((Msxml2_tlb::IVBSAXContentHandlerPtr*)&oHandler);
  return oHandler;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::_set_contentHandler(Msxml2_tlb::IVBSAXContentHandlerPtr oHandler/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("contentHandler"), DISPID(1287));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXContentHandler*)oHandler /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr* oHandler/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dtdHandler"), DISPID(1288));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXDTDHandler**)oHandler /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXDTDHandlerPtr __fastcall
IVBSAXXMLReaderDispT<T>::get_dtdHandler(void)
{
  Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler;
  this->get_dtdHandler((Msxml2_tlb::IVBSAXDTDHandlerPtr*)&oHandler);
  return oHandler;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::_set_dtdHandler(Msxml2_tlb::IVBSAXDTDHandlerPtr oHandler/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("dtdHandler"), DISPID(1288));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXDTDHandler*)oHandler /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr* oHandler/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("errorHandler"), DISPID(1289));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXErrorHandler**)oHandler /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXErrorHandlerPtr __fastcall
IVBSAXXMLReaderDispT<T>::get_errorHandler(void)
{
  Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler;
  this->get_errorHandler((Msxml2_tlb::IVBSAXErrorHandlerPtr*)&oHandler);
  return oHandler;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::_set_errorHandler(Msxml2_tlb::IVBSAXErrorHandlerPtr oHandler/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("errorHandler"), DISPID(1289));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXErrorHandler*)oHandler /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_baseURL(BSTR* strBaseURL/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseURL"), DISPID(1290));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strBaseURL /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXXMLReaderDispT<T>::get_baseURL(void)
{
  BSTR strBaseURL;
  this->get_baseURL((BSTR*)&strBaseURL);
  return strBaseURL;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::set_baseURL(BSTR strBaseURL/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseURL"), DISPID(1290));
  TAutoArgs<1> _args;
  _args[1] = strBaseURL /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::get_secureBaseURL(BSTR* strSecureBaseURL/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("secureBaseURL"), DISPID(1291));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strSecureBaseURL /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXXMLReaderDispT<T>::get_secureBaseURL(void)
{
  BSTR strSecureBaseURL;
  this->get_secureBaseURL((BSTR*)&strSecureBaseURL);
  return strSecureBaseURL;
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::set_secureBaseURL(BSTR strSecureBaseURL/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("secureBaseURL"), DISPID(1291));
  TAutoArgs<1> _args;
  _args[1] = strSecureBaseURL /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::parse(TVariantInParam varInput/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("parse"), DISPID(1292));
  TAutoArgs<1> _args;
  _args[1] = varInput /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXXMLReaderDispT<T>::parseURL(BSTR strURL/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("parseURL"), DISPID(1293));
  TAutoArgs<1> _args;
  _args[1] = strURL /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXEntityResolver
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {0C05D096-F45B-4ACA-AD1A-AA0BC25518DC}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXEntityResolverDispT<T>::resolveEntity(BSTR* strPublicId/*[in,out]*/, 
                                            BSTR* strSystemId/*[in,out]*/, 
                                            TVariant* varInput/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("resolveEntity"), DISPID(1319));
  TAutoArgs<2> _args;
  _args[1] = strPublicId /*[VT_BSTR:1]*/;
  _args[2] = strSystemId /*[VT_BSTR:1]*/;
  return OutRetValSetterPtr(varInput /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IVBSAXEntityResolverDispT<T>::resolveEntity(BSTR* strPublicId/*[in,out]*/, 
                                            BSTR* strSystemId/*[in,out]*/)
{
  TVariant varInput;
  this->resolveEntity(strPublicId, strSystemId, (TVariant*)&varInput);
  return varInput;
}

// *********************************************************************//
// DispIntf:  IVBSAXContentHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {2ED7290A-4DD5-4B46-BB26-4E4155E77FAA}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::_set_documentLocator(Msxml2_tlb::IVBSAXLocatorPtr Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("documentLocator"), DISPID(1322));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXLocator*)Param1 /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::startDocument()
{
  _TDispID _dispid(*this, OLETEXT("startDocument"), DISPID(1323));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::endDocument()
{
  _TDispID _dispid(*this, OLETEXT("endDocument"), DISPID(1324));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::startPrefixMapping(BSTR* strPrefix/*[in,out]*/, 
                                                 BSTR* strURI/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("startPrefixMapping"), DISPID(1325));
  TAutoArgs<2> _args;
  _args[1] = strPrefix /*[VT_BSTR:1]*/;
  _args[2] = strURI /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::endPrefixMapping(BSTR* strPrefix/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("endPrefixMapping"), DISPID(1326));
  TAutoArgs<1> _args;
  _args[1] = strPrefix /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::startElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                           BSTR* strLocalName/*[in,out]*/, 
                                           BSTR* strQName/*[in,out]*/, 
                                           Msxml2_tlb::IVBSAXAttributesPtr oAttributes/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("startElement"), DISPID(1327));
  TAutoArgs<4> _args;
  _args[1] = strNamespaceURI /*[VT_BSTR:1]*/;
  _args[2] = strLocalName /*[VT_BSTR:1]*/;
  _args[3] = strQName /*[VT_BSTR:1]*/;
  _args[4] = (LPDISPATCH)(Msxml2_tlb::IVBSAXAttributes*)oAttributes /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::endElement(BSTR* strNamespaceURI/*[in,out]*/, 
                                         BSTR* strLocalName/*[in,out]*/, BSTR* strQName/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("endElement"), DISPID(1328));
  TAutoArgs<3> _args;
  _args[1] = strNamespaceURI /*[VT_BSTR:1]*/;
  _args[2] = strLocalName /*[VT_BSTR:1]*/;
  _args[3] = strQName /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::characters(BSTR* strChars/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("characters"), DISPID(1329));
  TAutoArgs<1> _args;
  _args[1] = strChars /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::ignorableWhitespace(BSTR* strChars/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("ignorableWhitespace"), DISPID(1330));
  TAutoArgs<1> _args;
  _args[1] = strChars /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::processingInstruction(BSTR* strTarget/*[in,out]*/, 
                                                    BSTR* strData/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("processingInstruction"), DISPID(1331));
  TAutoArgs<2> _args;
  _args[1] = strTarget /*[VT_BSTR:1]*/;
  _args[2] = strData /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXContentHandlerDispT<T>::skippedEntity(BSTR* strName/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("skippedEntity"), DISPID(1332));
  TAutoArgs<1> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXLocator
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {796E7AC5-5AA2-4EFF-ACAD-3FAAF01A3288}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXLocatorDispT<T>::get_columnNumber(int* nColumn/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("columnNumber"), DISPID(1313));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nColumn /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> int __fastcall
IVBSAXLocatorDispT<T>::get_columnNumber(void)
{
  int nColumn;
  this->get_columnNumber((int*)&nColumn);
  return nColumn;
}

template <class T> HRESULT __fastcall
IVBSAXLocatorDispT<T>::get_lineNumber(int* nLine/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("lineNumber"), DISPID(1314));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nLine /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> int __fastcall
IVBSAXLocatorDispT<T>::get_lineNumber(void)
{
  int nLine;
  this->get_lineNumber((int*)&nLine);
  return nLine;
}

template <class T> HRESULT __fastcall
IVBSAXLocatorDispT<T>::get_publicId(BSTR* strPublicId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("publicId"), DISPID(1315));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strPublicId /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXLocatorDispT<T>::get_publicId(void)
{
  BSTR strPublicId;
  this->get_publicId((BSTR*)&strPublicId);
  return strPublicId;
}

template <class T> HRESULT __fastcall
IVBSAXLocatorDispT<T>::get_systemId(BSTR* strSystemId/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("systemId"), DISPID(1316));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strSystemId /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXLocatorDispT<T>::get_systemId(void)
{
  BSTR strSystemId;
  this->get_systemId((BSTR*)&strSystemId);
  return strSystemId;
}

// *********************************************************************//
// DispIntf:  IVBSAXAttributes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {10DC0586-132B-4CAC-8BB3-DB00AC8B7EE0}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::get_length(int* nLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1344));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nLength /*[VT_INT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> int __fastcall
IVBSAXAttributesDispT<T>::get_length(void)
{
  int nLength;
  this->get_length((int*)&nLength);
  return nLength;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getURI(int nIndex/*[in]*/, BSTR* strURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getURI"), DISPID(1345));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OutRetValSetterPtr(strURI /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getURI(int nIndex/*[in]*/)
{
  BSTR strURI;
  this->getURI(nIndex, (BSTR*)&strURI);
  return strURI;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getLocalName(int nIndex/*[in]*/, BSTR* strLocalName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getLocalName"), DISPID(1346));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OutRetValSetterPtr(strLocalName /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getLocalName(int nIndex/*[in]*/)
{
  BSTR strLocalName;
  this->getLocalName(nIndex, (BSTR*)&strLocalName);
  return strLocalName;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getQName(int nIndex/*[in]*/, BSTR* strQName/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getQName"), DISPID(1347));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OutRetValSetterPtr(strQName /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getQName(int nIndex/*[in]*/)
{
  BSTR strQName;
  this->getQName(nIndex, (BSTR*)&strQName);
  return strQName;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                           int* nIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getIndexFromName"), DISPID(1348));
  TAutoArgs<2> _args;
  _args[1] = strURI /*[VT_BSTR:0]*/;
  _args[2] = strLocalName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(nIndex /*[VT_INT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> int __fastcall
IVBSAXAttributesDispT<T>::getIndexFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
{
  int nIndex;
  this->getIndexFromName(strURI, strLocalName, (int*)&nIndex);
  return nIndex;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getIndexFromQName(BSTR strQName/*[in]*/, int* nIndex/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getIndexFromQName"), DISPID(1349));
  TAutoArgs<1> _args;
  _args[1] = strQName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(nIndex /*[VT_INT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> int __fastcall
IVBSAXAttributesDispT<T>::getIndexFromQName(BSTR strQName/*[in]*/)
{
  int nIndex;
  this->getIndexFromQName(strQName, (int*)&nIndex);
  return nIndex;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getType(int nIndex/*[in]*/, BSTR* strType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getType"), DISPID(1350));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OutRetValSetterPtr(strType /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getType(int nIndex/*[in]*/)
{
  BSTR strType;
  this->getType(nIndex, (BSTR*)&strType);
  return strType;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                          BSTR* strType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getTypeFromName"), DISPID(1351));
  TAutoArgs<2> _args;
  _args[1] = strURI /*[VT_BSTR:0]*/;
  _args[2] = strLocalName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(strType /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getTypeFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
{
  BSTR strType;
  this->getTypeFromName(strURI, strLocalName, (BSTR*)&strType);
  return strType;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getTypeFromQName(BSTR strQName/*[in]*/, BSTR* strType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getTypeFromQName"), DISPID(1352));
  TAutoArgs<1> _args;
  _args[1] = strQName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(strType /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getTypeFromQName(BSTR strQName/*[in]*/)
{
  BSTR strType;
  this->getTypeFromQName(strQName, (BSTR*)&strType);
  return strType;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getValue(int nIndex/*[in]*/, BSTR* strValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getValue"), DISPID(1353));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OutRetValSetterPtr(strValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getValue(int nIndex/*[in]*/)
{
  BSTR strValue;
  this->getValue(nIndex, (BSTR*)&strValue);
  return strValue;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                           BSTR* strValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getValueFromName"), DISPID(1354));
  TAutoArgs<2> _args;
  _args[1] = strURI /*[VT_BSTR:0]*/;
  _args[2] = strLocalName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(strValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getValueFromName(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/)
{
  BSTR strValue;
  this->getValueFromName(strURI, strLocalName, (BSTR*)&strValue);
  return strValue;
}

template <class T> HRESULT __fastcall
IVBSAXAttributesDispT<T>::getValueFromQName(BSTR strQName/*[in]*/, BSTR* strValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getValueFromQName"), DISPID(1355));
  TAutoArgs<1> _args;
  _args[1] = strQName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(strValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IVBSAXAttributesDispT<T>::getValueFromQName(BSTR strQName/*[in]*/)
{
  BSTR strValue;
  this->getValueFromQName(strQName, (BSTR*)&strValue);
  return strValue;
}

// *********************************************************************//
// DispIntf:  IVBSAXDTDHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {24FB3297-302D-4620-BA39-3A732D850558}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXDTDHandlerDispT<T>::notationDecl(BSTR* strName/*[in,out]*/, BSTR* strPublicId/*[in,out]*/, 
                                       BSTR* strSystemId/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("notationDecl"), DISPID(1335));
  TAutoArgs<3> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strPublicId /*[VT_BSTR:1]*/;
  _args[3] = strSystemId /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXDTDHandlerDispT<T>::unparsedEntityDecl(BSTR* strName/*[in,out]*/, 
                                             BSTR* strPublicId/*[in,out]*/, 
                                             BSTR* strSystemId/*[in,out]*/, 
                                             BSTR* strNotationName/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("unparsedEntityDecl"), DISPID(1336));
  TAutoArgs<4> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strPublicId /*[VT_BSTR:1]*/;
  _args[3] = strSystemId /*[VT_BSTR:1]*/;
  _args[4] = strNotationName /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXErrorHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {D963D3FE-173C-4862-9095-B92F66995F52}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXErrorHandlerDispT<T>::error(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                  BSTR* strErrorMessage/*[in,out]*/, long nErrorCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("error"), DISPID(1339));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXLocator*)oLocator /*[VT_USERDEFINED:1]*/;
  _args[2] = strErrorMessage /*[VT_BSTR:1]*/;
  _args[3] = nErrorCode /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXErrorHandlerDispT<T>::fatalError(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                       BSTR* strErrorMessage/*[in,out]*/, long nErrorCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("fatalError"), DISPID(1340));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXLocator*)oLocator /*[VT_USERDEFINED:1]*/;
  _args[2] = strErrorMessage /*[VT_BSTR:1]*/;
  _args[3] = nErrorCode /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXErrorHandlerDispT<T>::ignorableWarning(Msxml2_tlb::IVBSAXLocatorPtr oLocator/*[in]*/, 
                                             BSTR* strErrorMessage/*[in,out]*/, 
                                             long nErrorCode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("ignorableWarning"), DISPID(1341));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXLocator*)oLocator /*[VT_USERDEFINED:1]*/;
  _args[2] = strErrorMessage /*[VT_BSTR:1]*/;
  _args[3] = nErrorCode /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXXMLFilter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {1299EB1B-5B88-433E-82DE-82CA75AD4E04}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXXMLFilterDispT<T>::get_parent(Msxml2_tlb::IVBSAXXMLReaderPtr* oReader/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parent"), DISPID(1309));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXXMLReader**)oReader /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXXMLReaderPtr __fastcall
IVBSAXXMLFilterDispT<T>::get_parent(void)
{
  Msxml2_tlb::IVBSAXXMLReaderPtr oReader;
  this->get_parent((Msxml2_tlb::IVBSAXXMLReaderPtr*)&oReader);
  return oReader;
}

template <class T> HRESULT __fastcall
IVBSAXXMLFilterDispT<T>::_set_parent(Msxml2_tlb::IVBSAXXMLReaderPtr oReader/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("parent"), DISPID(1309));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IVBSAXXMLReader*)oReader /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXLexicalHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {032AAC35-8C0E-4D9D-979F-E3B702935576}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::startDTD(BSTR* strName/*[in,out]*/, BSTR* strPublicId/*[in,out]*/, 
                                       BSTR* strSystemId/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("startDTD"), DISPID(1358));
  TAutoArgs<3> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strPublicId /*[VT_BSTR:1]*/;
  _args[3] = strSystemId /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::endDTD()
{
  _TDispID _dispid(*this, OLETEXT("endDTD"), DISPID(1359));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::startEntity(BSTR* strName/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("startEntity"), DISPID(1360));
  TAutoArgs<1> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::endEntity(BSTR* strName/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("endEntity"), DISPID(1361));
  TAutoArgs<1> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::startCDATA()
{
  _TDispID _dispid(*this, OLETEXT("startCDATA"), DISPID(1362));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::endCDATA()
{
  _TDispID _dispid(*this, OLETEXT("endCDATA"), DISPID(1363));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBSAXLexicalHandlerDispT<T>::comment(BSTR* strChars/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("comment"), DISPID(1364));
  TAutoArgs<1> _args;
  _args[1] = strChars /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IVBSAXDeclHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {E8917260-7579-4BE1-B5DD-7AFBFA6F077B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBSAXDeclHandlerDispT<T>::elementDecl(BSTR* strName/*[in,out]*/, BSTR* strModel/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("elementDecl"), DISPID(1367));
  TAutoArgs<2> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strModel /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXDeclHandlerDispT<T>::attributeDecl(BSTR* strElementName/*[in,out]*/, 
                                         BSTR* strAttributeName/*[in,out]*/, 
                                         BSTR* strType/*[in,out]*/, 
                                         BSTR* strValueDefault/*[in,out]*/, 
                                         BSTR* strValue/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributeDecl"), DISPID(1368));
  TAutoArgs<5> _args;
  _args[1] = strElementName /*[VT_BSTR:1]*/;
  _args[2] = strAttributeName /*[VT_BSTR:1]*/;
  _args[3] = strType /*[VT_BSTR:1]*/;
  _args[4] = strValueDefault /*[VT_BSTR:1]*/;
  _args[5] = strValue /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXDeclHandlerDispT<T>::internalEntityDecl(BSTR* strName/*[in,out]*/, BSTR* strValue/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("internalEntityDecl"), DISPID(1369));
  TAutoArgs<2> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strValue /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBSAXDeclHandlerDispT<T>::externalEntityDecl(BSTR* strName/*[in,out]*/, 
                                              BSTR* strPublicId/*[in,out]*/, 
                                              BSTR* strSystemId/*[in,out]*/)
{
  _TDispID _dispid(*this, OLETEXT("externalEntityDecl"), DISPID(1370));
  TAutoArgs<3> _args;
  _args[1] = strName /*[VT_BSTR:1]*/;
  _args[2] = strPublicId /*[VT_BSTR:1]*/;
  _args[3] = strSystemId /*[VT_BSTR:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIMXWriter
// Interface: IMXWriter
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_output(TVariantInParam varDestination/*[in]*/)
{
  return (*this)->set_output(varDestination);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_output(TVariant* varDestination/*[out,retval]*/)
{
  return (*this)->get_output(varDestination);
}

template <class T> TVariant __fastcall
TCOMIMXWriterT<T>::get_output(void)
{
  TVariant varDestination;
  OLECHECK(this->get_output((TVariant*)&varDestination));
  return varDestination;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_encoding(BSTR strEncoding/*[in]*/)
{
  return (*this)->set_encoding(strEncoding);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_encoding(BSTR* strEncoding/*[out,retval]*/)
{
  return (*this)->get_encoding(strEncoding);
}

template <class T> BSTR __fastcall
TCOMIMXWriterT<T>::get_encoding(void)
{
  BSTR strEncoding = 0;
  OLECHECK(this->get_encoding((BSTR*)&strEncoding));
  return strEncoding;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_byteOrderMark(TOLEBOOL fWriteByteOrderMark/*[in]*/)
{
  return (*this)->set_byteOrderMark(fWriteByteOrderMark);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_byteOrderMark(TOLEBOOL* fWriteByteOrderMark/*[out,retval]*/)
{
  return (*this)->get_byteOrderMark(fWriteByteOrderMark);
}

template <class T> TOLEBOOL __fastcall
TCOMIMXWriterT<T>::get_byteOrderMark(void)
{
  TOLEBOOL fWriteByteOrderMark;
  OLECHECK(this->get_byteOrderMark((TOLEBOOL*)&fWriteByteOrderMark));
  return fWriteByteOrderMark;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_indent(TOLEBOOL fIndentMode/*[in]*/)
{
  return (*this)->set_indent(fIndentMode);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_indent(TOLEBOOL* fIndentMode/*[out,retval]*/)
{
  return (*this)->get_indent(fIndentMode);
}

template <class T> TOLEBOOL __fastcall
TCOMIMXWriterT<T>::get_indent(void)
{
  TOLEBOOL fIndentMode;
  OLECHECK(this->get_indent((TOLEBOOL*)&fIndentMode));
  return fIndentMode;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_standalone(TOLEBOOL fValue/*[in]*/)
{
  return (*this)->set_standalone(fValue);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_standalone(TOLEBOOL* fValue/*[out,retval]*/)
{
  return (*this)->get_standalone(fValue);
}

template <class T> TOLEBOOL __fastcall
TCOMIMXWriterT<T>::get_standalone(void)
{
  TOLEBOOL fValue;
  OLECHECK(this->get_standalone((TOLEBOOL*)&fValue));
  return fValue;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_omitXMLDeclaration(TOLEBOOL fValue/*[in]*/)
{
  return (*this)->set_omitXMLDeclaration(fValue);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_omitXMLDeclaration(TOLEBOOL* fValue/*[out,retval]*/)
{
  return (*this)->get_omitXMLDeclaration(fValue);
}

template <class T> TOLEBOOL __fastcall
TCOMIMXWriterT<T>::get_omitXMLDeclaration(void)
{
  TOLEBOOL fValue;
  OLECHECK(this->get_omitXMLDeclaration((TOLEBOOL*)&fValue));
  return fValue;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_version(BSTR strVersion/*[in]*/)
{
  return (*this)->set_version(strVersion);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_version(BSTR* strVersion/*[out,retval]*/)
{
  return (*this)->get_version(strVersion);
}

template <class T> BSTR __fastcall
TCOMIMXWriterT<T>::get_version(void)
{
  BSTR strVersion = 0;
  OLECHECK(this->get_version((BSTR*)&strVersion));
  return strVersion;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::set_disableOutputEscaping(TOLEBOOL fValue/*[in]*/)
{
  return (*this)->set_disableOutputEscaping(fValue);
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::get_disableOutputEscaping(TOLEBOOL* fValue/*[out,retval]*/)
{
  return (*this)->get_disableOutputEscaping(fValue);
}

template <class T> TOLEBOOL __fastcall
TCOMIMXWriterT<T>::get_disableOutputEscaping(void)
{
  TOLEBOOL fValue;
  OLECHECK(this->get_disableOutputEscaping((TOLEBOOL*)&fValue));
  return fValue;
}

template <class T> HRESULT __fastcall
TCOMIMXWriterT<T>::flush(void)
{
  return (*this)->flush();
}

// *********************************************************************//
// DispIntf:  IMXWriter
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {4D7FF4BA-1565-4EA8-94E1-6E724A46F98D}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_output(TVariantInParam varDestination/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("output"), DISPID(1385));
  TAutoArgs<1> _args;
  _args[1] = varDestination /*[VT_VARIANT:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_output(TVariant* varDestination/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("output"), DISPID(1385));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(varDestination /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IMXWriterDispT<T>::get_output(void)
{
  TVariant varDestination;
  this->get_output((TVariant*)&varDestination);
  return varDestination;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_encoding(BSTR strEncoding/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("encoding"), DISPID(1387));
  TAutoArgs<1> _args;
  _args[1] = strEncoding /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_encoding(BSTR* strEncoding/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("encoding"), DISPID(1387));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strEncoding /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMXWriterDispT<T>::get_encoding(void)
{
  BSTR strEncoding;
  this->get_encoding((BSTR*)&strEncoding);
  return strEncoding;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_byteOrderMark(TOLEBOOL fWriteByteOrderMark/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("byteOrderMark"), DISPID(1388));
  TAutoArgs<1> _args;
  _args[1] = fWriteByteOrderMark /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_byteOrderMark(TOLEBOOL* fWriteByteOrderMark/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("byteOrderMark"), DISPID(1388));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fWriteByteOrderMark /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMXWriterDispT<T>::get_byteOrderMark(void)
{
  TOLEBOOL fWriteByteOrderMark;
  this->get_byteOrderMark((TOLEBOOL*)&fWriteByteOrderMark);
  return fWriteByteOrderMark;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_indent(TOLEBOOL fIndentMode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("indent"), DISPID(1389));
  TAutoArgs<1> _args;
  _args[1] = fIndentMode /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_indent(TOLEBOOL* fIndentMode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("indent"), DISPID(1389));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fIndentMode /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMXWriterDispT<T>::get_indent(void)
{
  TOLEBOOL fIndentMode;
  this->get_indent((TOLEBOOL*)&fIndentMode);
  return fIndentMode;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_standalone(TOLEBOOL fValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("standalone"), DISPID(1390));
  TAutoArgs<1> _args;
  _args[1] = fValue /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_standalone(TOLEBOOL* fValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("standalone"), DISPID(1390));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fValue /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMXWriterDispT<T>::get_standalone(void)
{
  TOLEBOOL fValue;
  this->get_standalone((TOLEBOOL*)&fValue);
  return fValue;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_omitXMLDeclaration(TOLEBOOL fValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("omitXMLDeclaration"), DISPID(1391));
  TAutoArgs<1> _args;
  _args[1] = fValue /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_omitXMLDeclaration(TOLEBOOL* fValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("omitXMLDeclaration"), DISPID(1391));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fValue /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMXWriterDispT<T>::get_omitXMLDeclaration(void)
{
  TOLEBOOL fValue;
  this->get_omitXMLDeclaration((TOLEBOOL*)&fValue);
  return fValue;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_version(BSTR strVersion/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("version"), DISPID(1392));
  TAutoArgs<1> _args;
  _args[1] = strVersion /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_version(BSTR* strVersion/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("version"), DISPID(1392));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(strVersion /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMXWriterDispT<T>::get_version(void)
{
  BSTR strVersion;
  this->get_version((BSTR*)&strVersion);
  return strVersion;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::set_disableOutputEscaping(TOLEBOOL fValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("disableOutputEscaping"), DISPID(1393));
  TAutoArgs<1> _args;
  _args[1] = fValue /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::get_disableOutputEscaping(TOLEBOOL* fValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("disableOutputEscaping"), DISPID(1393));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fValue /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IMXWriterDispT<T>::get_disableOutputEscaping(void)
{
  TOLEBOOL fValue;
  this->get_disableOutputEscaping((TOLEBOOL*)&fValue);
  return fValue;
}

template <class T> HRESULT __fastcall
IMXWriterDispT<T>::flush()
{
  _TDispID _dispid(*this, OLETEXT("flush"), DISPID(1394));
  return OleFunction(_dispid);
}

// *********************************************************************//
// SmartIntf: TCOMIMXAttributes
// Interface: IMXAttributes
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::addAttribute(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                    BSTR strQName/*[in]*/, BSTR strType/*[in]*/, 
                                    BSTR strValue/*[in]*/)
{
  return (*this)->addAttribute(strURI, strLocalName, strQName, strType, strValue);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::addAttributeFromIndex(TVariantInParam varAtts/*[in]*/, int nIndex/*[in]*/)
{
  return (*this)->addAttributeFromIndex(varAtts, nIndex);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::clear(void)
{
  return (*this)->clear();
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::removeAttribute(int nIndex/*[in]*/)
{
  return (*this)->removeAttribute(nIndex);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setAttribute(int nIndex/*[in]*/, BSTR strURI/*[in]*/, 
                                    BSTR strLocalName/*[in]*/, BSTR strQName/*[in]*/, 
                                    BSTR strType/*[in]*/, BSTR strValue/*[in]*/)
{
  return (*this)->setAttribute(nIndex, strURI, strLocalName, strQName, strType, strValue);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setAttributes(TVariantInParam varAtts/*[in]*/)
{
  return (*this)->setAttributes(varAtts);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setLocalName(int nIndex/*[in]*/, BSTR strLocalName/*[in]*/)
{
  return (*this)->setLocalName(nIndex, strLocalName);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setQName(int nIndex/*[in]*/, BSTR strQName/*[in]*/)
{
  return (*this)->setQName(nIndex, strQName);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setType(int nIndex/*[in]*/, BSTR strType/*[in]*/)
{
  return (*this)->setType(nIndex, strType);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setURI(int nIndex/*[in]*/, BSTR strURI/*[in]*/)
{
  return (*this)->setURI(nIndex, strURI);
}

template <class T> HRESULT __fastcall
TCOMIMXAttributesT<T>::setValue(int nIndex/*[in]*/, BSTR strValue/*[in]*/)
{
  return (*this)->setValue(nIndex, strValue);
}

// *********************************************************************//
// DispIntf:  IMXAttributes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {F10D27CC-3EC0-415C-8ED8-77AB1C5E7262}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::addAttribute(BSTR strURI/*[in]*/, BSTR strLocalName/*[in]*/, 
                                    BSTR strQName/*[in]*/, BSTR strType/*[in]*/, 
                                    BSTR strValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("addAttribute"), DISPID(1373));
  TAutoArgs<5> _args;
  _args[1] = strURI /*[VT_BSTR:0]*/;
  _args[2] = strLocalName /*[VT_BSTR:0]*/;
  _args[3] = strQName /*[VT_BSTR:0]*/;
  _args[4] = strType /*[VT_BSTR:0]*/;
  _args[5] = strValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::addAttributeFromIndex(TVariantInParam varAtts/*[in]*/, int nIndex/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("addAttributeFromIndex"), DISPID(1383));
  TAutoArgs<2> _args;
  _args[1] = varAtts /*[VT_VARIANT:0]*/;
  _args[2] = nIndex /*[VT_INT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::clear()
{
  _TDispID _dispid(*this, OLETEXT("clear"), DISPID(1374));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::removeAttribute(int nIndex/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeAttribute"), DISPID(1375));
  TAutoArgs<1> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setAttribute(int nIndex/*[in]*/, BSTR strURI/*[in]*/, 
                                    BSTR strLocalName/*[in]*/, BSTR strQName/*[in]*/, 
                                    BSTR strType/*[in]*/, BSTR strValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttribute"), DISPID(1376));
  TAutoArgs<6> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strURI /*[VT_BSTR:0]*/;
  _args[3] = strLocalName /*[VT_BSTR:0]*/;
  _args[4] = strQName /*[VT_BSTR:0]*/;
  _args[5] = strType /*[VT_BSTR:0]*/;
  _args[6] = strValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setAttributes(TVariantInParam varAtts/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttributes"), DISPID(1377));
  TAutoArgs<1> _args;
  _args[1] = varAtts /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setLocalName(int nIndex/*[in]*/, BSTR strLocalName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setLocalName"), DISPID(1378));
  TAutoArgs<2> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strLocalName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setQName(int nIndex/*[in]*/, BSTR strQName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setQName"), DISPID(1379));
  TAutoArgs<2> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strQName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setType(int nIndex/*[in]*/, BSTR strType/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setType"), DISPID(1380));
  TAutoArgs<2> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strType /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setURI(int nIndex/*[in]*/, BSTR strURI/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setURI"), DISPID(1381));
  TAutoArgs<2> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IMXAttributesDispT<T>::setValue(int nIndex/*[in]*/, BSTR strValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setValue"), DISPID(1382));
  TAutoArgs<2> _args;
  _args[1] = nIndex /*[VT_INT:0]*/;
  _args[2] = strValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IMXReaderControl
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {808F4E35-8D5A-4FBE-8466-33A41279ED30}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMXReaderControlDispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(1398));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IMXReaderControlDispT<T>::resume()
{
  _TDispID _dispid(*this, OLETEXT("resume"), DISPID(1399));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IMXReaderControlDispT<T>::suspend()
{
  _TDispID _dispid(*this, OLETEXT("suspend"), DISPID(1400));
  return OleFunction(_dispid);
}

// *********************************************************************//
// DispIntf:  IMXSchemaDeclHandler
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {FA4BB38C-FAF9-4CCA-9302-D1DD0FE520DB}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMXSchemaDeclHandlerDispT<T>::schemaElementDecl(Msxml2_tlb::ISchemaElementPtr oSchemaElement/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("schemaElementDecl"), DISPID(1403));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::ISchemaElement*)oSchemaElement /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  ISchemaItem
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B3-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaItemDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaItemDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaItemDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaItemDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaItemDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaItemDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaItemDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                     TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaItemDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaParticle
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B5-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_minOccurs(TVariant* minOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minOccurs"), DISPID(1455));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaParticleDispT<T>::get_minOccurs(void)
{
  TVariant minOccurs;
  this->get_minOccurs((TVariant*)&minOccurs);
  return minOccurs;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxOccurs"), DISPID(1451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaParticleDispT<T>::get_maxOccurs(void)
{
  TVariant maxOccurs;
  this->get_maxOccurs((TVariant*)&maxOccurs);
  return maxOccurs;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaParticleDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaParticleDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaParticleDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaParticleDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaParticleDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaParticleDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaParticleDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                         TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaParticleDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaElement
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B7-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("type"), DISPID(1476));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaType**)type /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaTypePtr __fastcall
ISchemaElementDispT<T>::get_type(void)
{
  Msxml2_tlb::ISchemaTypePtr type;
  this->get_type((Msxml2_tlb::ISchemaTypePtr*)&type);
  return type;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("scope"), DISPID(1469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaComplexType**)scope /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaComplexTypePtr __fastcall
ISchemaElementDispT<T>::get_scope(void)
{
  Msxml2_tlb::ISchemaComplexTypePtr scope;
  this->get_scope((Msxml2_tlb::ISchemaComplexTypePtr*)&scope);
  return scope;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_defaultValue(BSTR* defaultValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("defaultValue"), DISPID(1431));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(defaultValue /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaElementDispT<T>::get_defaultValue(void)
{
  BSTR defaultValue;
  this->get_defaultValue((BSTR*)&defaultValue);
  return defaultValue;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_fixedValue(BSTR* fixedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fixedValue"), DISPID(1438));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fixedValue /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaElementDispT<T>::get_fixedValue(void)
{
  BSTR fixedValue;
  this->get_fixedValue((BSTR*)&fixedValue);
  return fixedValue;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_isNillable(TOLEBOOL* nillable/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isNillable"), DISPID(1443));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(nillable /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaElementDispT<T>::get_isNillable(void)
{
  TOLEBOOL nillable;
  this->get_isNillable((TOLEBOOL*)&nillable);
  return nillable;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_identityConstraints(Msxml2_tlb::ISchemaItemCollectionPtr* constraints/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("identityConstraints"), DISPID(1441));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)constraints /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaElementDispT<T>::get_identityConstraints(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr constraints;
  this->get_identityConstraints((Msxml2_tlb::ISchemaItemCollectionPtr*)&constraints);
  return constraints;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_substitutionGroup(Msxml2_tlb::ISchemaElementPtr* element/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substitutionGroup"), DISPID(1471));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaElement**)element /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaElementPtr __fastcall
ISchemaElementDispT<T>::get_substitutionGroup(void)
{
  Msxml2_tlb::ISchemaElementPtr element;
  this->get_substitutionGroup((Msxml2_tlb::ISchemaElementPtr*)&element);
  return element;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_substitutionGroupExclusions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* exclusions/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("substitutionGroupExclusions"), DISPID(1472));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)exclusions /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaElementDispT<T>::get_substitutionGroupExclusions(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD exclusions;
  this->get_substitutionGroupExclusions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&exclusions);
  return exclusions;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_disallowedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* disallowed/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("disallowedSubstitutions"), DISPID(1433));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)disallowed /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaElementDispT<T>::get_disallowedSubstitutions(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD disallowed;
  this->get_disallowedSubstitutions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&disallowed);
  return disallowed;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isAbstract"), DISPID(1442));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(abstract /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaElementDispT<T>::get_isAbstract(void)
{
  TOLEBOOL abstract;
  this->get_isAbstract((TOLEBOOL*)&abstract);
  return abstract;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_isReference(TOLEBOOL* reference/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isReference"), DISPID(1444));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(reference /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaElementDispT<T>::get_isReference(void)
{
  TOLEBOOL reference;
  this->get_isReference((TOLEBOOL*)&reference);
  return reference;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_minOccurs(TVariant* minOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minOccurs"), DISPID(1455));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaElementDispT<T>::get_minOccurs(void)
{
  TVariant minOccurs;
  this->get_minOccurs((TVariant*)&minOccurs);
  return minOccurs;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxOccurs"), DISPID(1451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaElementDispT<T>::get_maxOccurs(void)
{
  TVariant maxOccurs;
  this->get_maxOccurs((TVariant*)&maxOccurs);
  return maxOccurs;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaElementDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaElementDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaElementDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaElementDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaElementDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaElementDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaElementDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                        TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaElementDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchema
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B4-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_targetNamespace(BSTR* targetNamespace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("targetNamespace"), DISPID(1474));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(targetNamespace /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaDispT<T>::get_targetNamespace(void)
{
  BSTR targetNamespace;
  this->get_targetNamespace((BSTR*)&targetNamespace);
  return targetNamespace;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_version(BSTR* version/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("version"), DISPID(1481));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(version /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaDispT<T>::get_version(void)
{
  BSTR version;
  this->get_version((BSTR*)&version);
  return version;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_types(Msxml2_tlb::ISchemaItemCollectionPtr* types/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("types"), DISPID(1477));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)types /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_types(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr types;
  this->get_types((Msxml2_tlb::ISchemaItemCollectionPtr*)&types);
  return types;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_elements(Msxml2_tlb::ISchemaItemCollectionPtr* elements/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("elements"), DISPID(1434));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)elements /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_elements(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr elements;
  this->get_elements((Msxml2_tlb::ISchemaItemCollectionPtr*)&elements);
  return elements;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(1427));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_attributes(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr attributes;
  this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_attributeGroups(Msxml2_tlb::ISchemaItemCollectionPtr* attributeGroups/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributeGroups"), DISPID(1426));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)attributeGroups /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_attributeGroups(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr attributeGroups;
  this->get_attributeGroups((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributeGroups);
  return attributeGroups;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_modelGroups(Msxml2_tlb::ISchemaItemCollectionPtr* modelGroups/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("modelGroups"), DISPID(1456));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)modelGroups /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_modelGroups(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr modelGroups;
  this->get_modelGroups((Msxml2_tlb::ISchemaItemCollectionPtr*)&modelGroups);
  return modelGroups;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_notations(Msxml2_tlb::ISchemaItemCollectionPtr* notations/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("notations"), DISPID(1460));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)notations /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaDispT<T>::get_notations(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr notations;
  this->get_notations((Msxml2_tlb::ISchemaItemCollectionPtr*)&notations);
  return notations;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_schemaLocations(Msxml2_tlb::ISchemaStringCollectionPtr* schemaLocations/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schemaLocations"), DISPID(1468));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)schemaLocations /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaDispT<T>::get_schemaLocations(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr schemaLocations;
  this->get_schemaLocations((Msxml2_tlb::ISchemaStringCollectionPtr*)&schemaLocations);
  return schemaLocations;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                 TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaItemCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B2-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaItemCollectionDispT<T>::get_item(long index/*[in]*/, 
                                        Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItem**)item /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemPtr __fastcall
ISchemaItemCollectionDispT<T>::get_item(long index/*[in]*/)
{
  Msxml2_tlb::ISchemaItemPtr item;
  this->get_item(index, (Msxml2_tlb::ISchemaItemPtr*)&item);
  return item;
}

template <class T> HRESULT __fastcall
ISchemaItemCollectionDispT<T>::itemByName(BSTR name/*[in]*/, 
                                          Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemByName"), DISPID(1423));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItem**)item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemPtr __fastcall
ISchemaItemCollectionDispT<T>::itemByName(BSTR name/*[in]*/)
{
  Msxml2_tlb::ISchemaItemPtr item;
  this->itemByName(name, (Msxml2_tlb::ISchemaItemPtr*)&item);
  return item;
}

template <class T> HRESULT __fastcall
ISchemaItemCollectionDispT<T>::itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/, 
                                           Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemByQName"), DISPID(1424));
  TAutoArgs<2> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItem**)item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemPtr __fastcall
ISchemaItemCollectionDispT<T>::itemByQName(BSTR name/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::ISchemaItemPtr item;
  this->itemByQName(name, namespaceURI, (Msxml2_tlb::ISchemaItemPtr*)&item);
  return item;
}

template <class T> HRESULT __fastcall
ISchemaItemCollectionDispT<T>::get_length(long* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1447));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISchemaItemCollectionDispT<T>::get_length(void)
{
  long length;
  this->get_length((long*)&length);
  return length;
}

template <class T> HRESULT __fastcall
ISchemaItemCollectionDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISchemaItemCollectionDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  ISchemaStringCollection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B1-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaStringCollectionDispT<T>::get_item(long index/*[in]*/, BSTR* bstr/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(bstr /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaStringCollectionDispT<T>::get_item(long index/*[in]*/)
{
  BSTR bstr;
  this->get_item(index, (BSTR*)&bstr);
  return bstr;
}

template <class T> HRESULT __fastcall
ISchemaStringCollectionDispT<T>::get_length(long* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1447));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
ISchemaStringCollectionDispT<T>::get_length(void)
{
  long length;
  this->get_length((long*)&length);
  return length;
}

template <class T> HRESULT __fastcall
ISchemaStringCollectionDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
ISchemaStringCollectionDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  ISchemaType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B8-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_baseTypes(Msxml2_tlb::ISchemaItemCollectionPtr* baseTypes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseTypes"), DISPID(1428));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)baseTypes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaTypeDispT<T>::get_baseTypes(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr baseTypes;
  this->get_baseTypes((Msxml2_tlb::ISchemaItemCollectionPtr*)&baseTypes);
  return baseTypes;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_final(Msxml2_tlb::SCHEMADERIVATIONMETHOD* final/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("final"), DISPID(1437));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)final /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaTypeDispT<T>::get_final(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD final;
  this->get_final((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&final);
  return final;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_variety(Msxml2_tlb::SCHEMATYPEVARIETY* variety/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("variety"), DISPID(1480));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)variety /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMATYPEVARIETY __fastcall
ISchemaTypeDispT<T>::get_variety(void)
{
  Msxml2_tlb::SCHEMATYPEVARIETY variety;
  this->get_variety((Msxml2_tlb::SCHEMATYPEVARIETY*)&variety);
  return variety;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_derivedBy(Msxml2_tlb::SCHEMADERIVATIONMETHOD* derivedBy/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("derivedBy"), DISPID(1432));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)derivedBy /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaTypeDispT<T>::get_derivedBy(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy;
  this->get_derivedBy((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&derivedBy);
  return derivedBy;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::isValid(BSTR data/*[in]*/, TOLEBOOL* valid/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isValid"), DISPID(1445));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(valid /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaTypeDispT<T>::isValid(BSTR data/*[in]*/)
{
  TOLEBOOL valid;
  this->isValid(data, (TOLEBOOL*)&valid);
  return valid;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_minExclusive(BSTR* minExclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minExclusive"), DISPID(1452));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minExclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_minExclusive(void)
{
  BSTR minExclusive;
  this->get_minExclusive((BSTR*)&minExclusive);
  return minExclusive;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_minInclusive(BSTR* minInclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minInclusive"), DISPID(1453));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minInclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_minInclusive(void)
{
  BSTR minInclusive;
  this->get_minInclusive((BSTR*)&minInclusive);
  return minInclusive;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_maxExclusive(BSTR* maxExclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxExclusive"), DISPID(1448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxExclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_maxExclusive(void)
{
  BSTR maxExclusive;
  this->get_maxExclusive((BSTR*)&maxExclusive);
  return maxExclusive;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_maxInclusive(BSTR* maxInclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxInclusive"), DISPID(1449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxInclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_maxInclusive(void)
{
  BSTR maxInclusive;
  this->get_maxInclusive((BSTR*)&maxInclusive);
  return maxInclusive;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_totalDigits(TVariant* totalDigits/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("totalDigits"), DISPID(1475));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(totalDigits /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaTypeDispT<T>::get_totalDigits(void)
{
  TVariant totalDigits;
  this->get_totalDigits((TVariant*)&totalDigits);
  return totalDigits;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_fractionDigits(TVariant* fractionDigits/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fractionDigits"), DISPID(1439));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fractionDigits /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaTypeDispT<T>::get_fractionDigits(void)
{
  TVariant fractionDigits;
  this->get_fractionDigits((TVariant*)&fractionDigits);
  return fractionDigits;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_length(TVariant* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1447));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaTypeDispT<T>::get_length(void)
{
  TVariant length;
  this->get_length((TVariant*)&length);
  return length;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_minLength(TVariant* minLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minLength"), DISPID(1454));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minLength /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaTypeDispT<T>::get_minLength(void)
{
  TVariant minLength;
  this->get_minLength((TVariant*)&minLength);
  return minLength;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_maxLength(TVariant* maxLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxLength"), DISPID(1450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxLength /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaTypeDispT<T>::get_maxLength(void)
{
  TVariant maxLength;
  this->get_maxLength((TVariant*)&maxLength);
  return maxLength;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_enumeration(Msxml2_tlb::ISchemaStringCollectionPtr* enumeration/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("enumeration"), DISPID(1435));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)enumeration /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaTypeDispT<T>::get_enumeration(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr enumeration;
  this->get_enumeration((Msxml2_tlb::ISchemaStringCollectionPtr*)&enumeration);
  return enumeration;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_whitespace(Msxml2_tlb::SCHEMAWHITESPACE* whitespace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("whitespace"), DISPID(1482));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)whitespace /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMAWHITESPACE __fastcall
ISchemaTypeDispT<T>::get_whitespace(void)
{
  Msxml2_tlb::SCHEMAWHITESPACE whitespace;
  this->get_whitespace((Msxml2_tlb::SCHEMAWHITESPACE*)&whitespace);
  return whitespace;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_patterns(Msxml2_tlb::ISchemaStringCollectionPtr* patterns/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("patterns"), DISPID(1462));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)patterns /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaTypeDispT<T>::get_patterns(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr patterns;
  this->get_patterns((Msxml2_tlb::ISchemaStringCollectionPtr*)&patterns);
  return patterns;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaTypeDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaTypeDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaTypeDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaTypeDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaTypeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                     TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaTypeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaComplexType
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B9-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_isAbstract(TOLEBOOL* abstract/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isAbstract"), DISPID(1442));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(abstract /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaComplexTypeDispT<T>::get_isAbstract(void)
{
  TOLEBOOL abstract;
  this->get_isAbstract((TOLEBOOL*)&abstract);
  return abstract;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("anyAttribute"), DISPID(1425));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaAny**)anyAttribute /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaAnyPtr __fastcall
ISchemaComplexTypeDispT<T>::get_anyAttribute(void)
{
  Msxml2_tlb::ISchemaAnyPtr anyAttribute;
  this->get_anyAttribute((Msxml2_tlb::ISchemaAnyPtr*)&anyAttribute);
  return anyAttribute;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(1427));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaComplexTypeDispT<T>::get_attributes(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr attributes;
  this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_contentType(Msxml2_tlb::SCHEMACONTENTTYPE* contentType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("contentType"), DISPID(1430));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)contentType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMACONTENTTYPE __fastcall
ISchemaComplexTypeDispT<T>::get_contentType(void)
{
  Msxml2_tlb::SCHEMACONTENTTYPE contentType;
  this->get_contentType((Msxml2_tlb::SCHEMACONTENTTYPE*)&contentType);
  return contentType;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_contentModel(Msxml2_tlb::ISchemaModelGroupPtr* contentModel/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("contentModel"), DISPID(1429));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaModelGroup**)contentModel /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaModelGroupPtr __fastcall
ISchemaComplexTypeDispT<T>::get_contentModel(void)
{
  Msxml2_tlb::ISchemaModelGroupPtr contentModel;
  this->get_contentModel((Msxml2_tlb::ISchemaModelGroupPtr*)&contentModel);
  return contentModel;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_prohibitedSubstitutions(Msxml2_tlb::SCHEMADERIVATIONMETHOD* prohibited/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("prohibitedSubstitutions"), DISPID(1464));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)prohibited /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaComplexTypeDispT<T>::get_prohibitedSubstitutions(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD prohibited;
  this->get_prohibitedSubstitutions((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&prohibited);
  return prohibited;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_baseTypes(Msxml2_tlb::ISchemaItemCollectionPtr* baseTypes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("baseTypes"), DISPID(1428));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)baseTypes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaComplexTypeDispT<T>::get_baseTypes(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr baseTypes;
  this->get_baseTypes((Msxml2_tlb::ISchemaItemCollectionPtr*)&baseTypes);
  return baseTypes;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_final(Msxml2_tlb::SCHEMADERIVATIONMETHOD* final/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("final"), DISPID(1437));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)final /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaComplexTypeDispT<T>::get_final(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD final;
  this->get_final((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&final);
  return final;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_variety(Msxml2_tlb::SCHEMATYPEVARIETY* variety/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("variety"), DISPID(1480));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)variety /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMATYPEVARIETY __fastcall
ISchemaComplexTypeDispT<T>::get_variety(void)
{
  Msxml2_tlb::SCHEMATYPEVARIETY variety;
  this->get_variety((Msxml2_tlb::SCHEMATYPEVARIETY*)&variety);
  return variety;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_derivedBy(Msxml2_tlb::SCHEMADERIVATIONMETHOD* derivedBy/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("derivedBy"), DISPID(1432));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)derivedBy /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMADERIVATIONMETHOD __fastcall
ISchemaComplexTypeDispT<T>::get_derivedBy(void)
{
  Msxml2_tlb::SCHEMADERIVATIONMETHOD derivedBy;
  this->get_derivedBy((Msxml2_tlb::SCHEMADERIVATIONMETHOD*)&derivedBy);
  return derivedBy;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::isValid(BSTR data/*[in]*/, TOLEBOOL* valid/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isValid"), DISPID(1445));
  TAutoArgs<1> _args;
  _args[1] = data /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(valid /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaComplexTypeDispT<T>::isValid(BSTR data/*[in]*/)
{
  TOLEBOOL valid;
  this->isValid(data, (TOLEBOOL*)&valid);
  return valid;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_minExclusive(BSTR* minExclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minExclusive"), DISPID(1452));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minExclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_minExclusive(void)
{
  BSTR minExclusive;
  this->get_minExclusive((BSTR*)&minExclusive);
  return minExclusive;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_minInclusive(BSTR* minInclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minInclusive"), DISPID(1453));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minInclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_minInclusive(void)
{
  BSTR minInclusive;
  this->get_minInclusive((BSTR*)&minInclusive);
  return minInclusive;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_maxExclusive(BSTR* maxExclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxExclusive"), DISPID(1448));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxExclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_maxExclusive(void)
{
  BSTR maxExclusive;
  this->get_maxExclusive((BSTR*)&maxExclusive);
  return maxExclusive;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_maxInclusive(BSTR* maxInclusive/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxInclusive"), DISPID(1449));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxInclusive /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_maxInclusive(void)
{
  BSTR maxInclusive;
  this->get_maxInclusive((BSTR*)&maxInclusive);
  return maxInclusive;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_totalDigits(TVariant* totalDigits/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("totalDigits"), DISPID(1475));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(totalDigits /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaComplexTypeDispT<T>::get_totalDigits(void)
{
  TVariant totalDigits;
  this->get_totalDigits((TVariant*)&totalDigits);
  return totalDigits;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_fractionDigits(TVariant* fractionDigits/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fractionDigits"), DISPID(1439));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fractionDigits /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaComplexTypeDispT<T>::get_fractionDigits(void)
{
  TVariant fractionDigits;
  this->get_fractionDigits((TVariant*)&fractionDigits);
  return fractionDigits;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_length(TVariant* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1447));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaComplexTypeDispT<T>::get_length(void)
{
  TVariant length;
  this->get_length((TVariant*)&length);
  return length;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_minLength(TVariant* minLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minLength"), DISPID(1454));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minLength /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaComplexTypeDispT<T>::get_minLength(void)
{
  TVariant minLength;
  this->get_minLength((TVariant*)&minLength);
  return minLength;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_maxLength(TVariant* maxLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxLength"), DISPID(1450));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxLength /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaComplexTypeDispT<T>::get_maxLength(void)
{
  TVariant maxLength;
  this->get_maxLength((TVariant*)&maxLength);
  return maxLength;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_enumeration(Msxml2_tlb::ISchemaStringCollectionPtr* enumeration/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("enumeration"), DISPID(1435));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)enumeration /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaComplexTypeDispT<T>::get_enumeration(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr enumeration;
  this->get_enumeration((Msxml2_tlb::ISchemaStringCollectionPtr*)&enumeration);
  return enumeration;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_whitespace(Msxml2_tlb::SCHEMAWHITESPACE* whitespace/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("whitespace"), DISPID(1482));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)whitespace /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMAWHITESPACE __fastcall
ISchemaComplexTypeDispT<T>::get_whitespace(void)
{
  Msxml2_tlb::SCHEMAWHITESPACE whitespace;
  this->get_whitespace((Msxml2_tlb::SCHEMAWHITESPACE*)&whitespace);
  return whitespace;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_patterns(Msxml2_tlb::ISchemaStringCollectionPtr* patterns/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("patterns"), DISPID(1462));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)patterns /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaComplexTypeDispT<T>::get_patterns(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr patterns;
  this->get_patterns((Msxml2_tlb::ISchemaStringCollectionPtr*)&patterns);
  return patterns;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaComplexTypeDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaComplexTypeDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaComplexTypeDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaComplexTypeDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaComplexTypeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                            TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaComplexTypeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaAny
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BC-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_namespaces(Msxml2_tlb::ISchemaStringCollectionPtr* namespaces/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaces"), DISPID(1458));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)namespaces /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaAnyDispT<T>::get_namespaces(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr namespaces;
  this->get_namespaces((Msxml2_tlb::ISchemaStringCollectionPtr*)&namespaces);
  return namespaces;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_processContents(Msxml2_tlb::SCHEMAPROCESSCONTENTS* processContents/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("processContents"), DISPID(1463));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)processContents /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMAPROCESSCONTENTS __fastcall
ISchemaAnyDispT<T>::get_processContents(void)
{
  Msxml2_tlb::SCHEMAPROCESSCONTENTS processContents;
  this->get_processContents((Msxml2_tlb::SCHEMAPROCESSCONTENTS*)&processContents);
  return processContents;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_minOccurs(TVariant* minOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minOccurs"), DISPID(1455));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaAnyDispT<T>::get_minOccurs(void)
{
  TVariant minOccurs;
  this->get_minOccurs((TVariant*)&minOccurs);
  return minOccurs;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxOccurs"), DISPID(1451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaAnyDispT<T>::get_maxOccurs(void)
{
  TVariant maxOccurs;
  this->get_maxOccurs((TVariant*)&maxOccurs);
  return maxOccurs;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAnyDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAnyDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaAnyDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAnyDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaAnyDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaAnyDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaAnyDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                    TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaAnyDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaModelGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BB-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_particles(Msxml2_tlb::ISchemaItemCollectionPtr* particles/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("particles"), DISPID(1461));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)particles /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaModelGroupDispT<T>::get_particles(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr particles;
  this->get_particles((Msxml2_tlb::ISchemaItemCollectionPtr*)&particles);
  return particles;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_minOccurs(TVariant* minOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("minOccurs"), DISPID(1455));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(minOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaModelGroupDispT<T>::get_minOccurs(void)
{
  TVariant minOccurs;
  this->get_minOccurs((TVariant*)&minOccurs);
  return minOccurs;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_maxOccurs(TVariant* maxOccurs/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("maxOccurs"), DISPID(1451));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(maxOccurs /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
ISchemaModelGroupDispT<T>::get_maxOccurs(void)
{
  TVariant maxOccurs;
  this->get_maxOccurs((TVariant*)&maxOccurs);
  return maxOccurs;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaModelGroupDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaModelGroupDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaModelGroupDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaModelGroupDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaModelGroupDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaModelGroupDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaModelGroupDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                           TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaModelGroupDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// SmartIntf: TCOMIXMLDOMSchemaCollection2
// Interface: IXMLDOMSchemaCollection2
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::validate(void)
{
  return (*this)->validate();
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::set_validateOnLoad(TOLEBOOL validateOnLoad/*[in]*/)
{
  return (*this)->set_validateOnLoad(validateOnLoad);
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::get_validateOnLoad(TOLEBOOL* validateOnLoad/*[out,retval]*/)
{
  return (*this)->get_validateOnLoad(validateOnLoad);
}

template <class T> TOLEBOOL __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::get_validateOnLoad(void)
{
  TOLEBOOL validateOnLoad;
  OLECHECK(this->get_validateOnLoad((TOLEBOOL*)&validateOnLoad));
  return validateOnLoad;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::getSchema(BSTR namespaceURI/*[in]*/, 
                                            Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  return (*this)->getSchema(namespaceURI, schema);
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::getSchema(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::ISchemaPtr schema;
  OLECHECK(this->getSchema(namespaceURI, (Msxml2_tlb::ISchemaPtr*)&schema));
  return schema;
}

template <class T> HRESULT __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/, 
                                                 Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/)
{
  return (*this)->getDeclaration(node, item);
}

template <class T> Msxml2_tlb::ISchemaItemPtr __fastcall
TCOMIXMLDOMSchemaCollection2T<T>::getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/)
{
  Msxml2_tlb::ISchemaItemPtr item;
  OLECHECK(this->getDeclaration(node, (Msxml2_tlb::ISchemaItemPtr*)&item));
  return item;
}

// *********************************************************************//
// DispIntf:  IXMLDOMSchemaCollection2
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B0-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::validate()
{
  _TDispID _dispid(*this, OLETEXT("validate"), DISPID(1419));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::set_validateOnLoad(TOLEBOOL validateOnLoad/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnLoad"), DISPID(1420));
  TAutoArgs<1> _args;
  _args[1] = validateOnLoad /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_validateOnLoad(TOLEBOOL* validateOnLoad/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("validateOnLoad"), DISPID(1420));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(validateOnLoad /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_validateOnLoad(void)
{
  TOLEBOOL validateOnLoad;
  this->get_validateOnLoad((TOLEBOOL*)&validateOnLoad);
  return validateOnLoad;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::getSchema(BSTR namespaceURI/*[in]*/, 
                                            Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getSchema"), DISPID(1421));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
IXMLDOMSchemaCollection2DispT<T>::getSchema(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->getSchema(namespaceURI, (Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/, 
                                                 Msxml2_tlb::ISchemaItemPtr* item/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getDeclaration"), DISPID(1422));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)node /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItem**)item /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemPtr __fastcall
IXMLDOMSchemaCollection2DispT<T>::getDeclaration(Msxml2_tlb::IXMLDOMNodePtr node/*[in]*/)
{
  Msxml2_tlb::ISchemaItemPtr item;
  this->getDeclaration(node, (Msxml2_tlb::ISchemaItemPtr*)&item);
  return item;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::add(BSTR namespaceURI/*[in]*/, TVariantInParam var/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("add"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  _args[2] = var /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::get(BSTR namespaceURI/*[in]*/, 
                                      Msxml2_tlb::IXMLDOMNodePtr* schemaNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("get"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)schemaNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSchemaCollection2DispT<T>::get(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr schemaNode;
  this->get(namespaceURI, (Msxml2_tlb::IXMLDOMNodePtr*)&schemaNode);
  return schemaNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::remove(BSTR namespaceURI/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("remove"), DISPID(4));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_length(long* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(5));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_length(void)
{
  long length;
  this->get_length((long*)&length);
  return length;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_namespaceURI(long index/*[in]*/, BSTR* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(length /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMSchemaCollection2DispT<T>::get_namespaceURI(long index/*[in]*/)
{
  BSTR length;
  this->get_namespaceURI(index, (BSTR*)&length);
  return length;
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::addCollection(Msxml2_tlb::IXMLDOMSchemaCollectionPtr otherCollection/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("addCollection"), DISPID(6));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMSchemaCollection*)otherCollection /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSchemaCollection2DispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLDOMSchemaCollection2DispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  ISchemaAttribute
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08B6-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_type(Msxml2_tlb::ISchemaTypePtr* type/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("type"), DISPID(1476));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaType**)type /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaTypePtr __fastcall
ISchemaAttributeDispT<T>::get_type(void)
{
  Msxml2_tlb::ISchemaTypePtr type;
  this->get_type((Msxml2_tlb::ISchemaTypePtr*)&type);
  return type;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_scope(Msxml2_tlb::ISchemaComplexTypePtr* scope/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("scope"), DISPID(1469));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaComplexType**)scope /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaComplexTypePtr __fastcall
ISchemaAttributeDispT<T>::get_scope(void)
{
  Msxml2_tlb::ISchemaComplexTypePtr scope;
  this->get_scope((Msxml2_tlb::ISchemaComplexTypePtr*)&scope);
  return scope;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_defaultValue(BSTR* defaultValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("defaultValue"), DISPID(1431));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(defaultValue /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeDispT<T>::get_defaultValue(void)
{
  BSTR defaultValue;
  this->get_defaultValue((BSTR*)&defaultValue);
  return defaultValue;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_fixedValue(BSTR* fixedValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fixedValue"), DISPID(1438));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fixedValue /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeDispT<T>::get_fixedValue(void)
{
  BSTR fixedValue;
  this->get_fixedValue((BSTR*)&fixedValue);
  return fixedValue;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_use(Msxml2_tlb::SCHEMAUSE* use/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("use"), DISPID(1479));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)use /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SCHEMAUSE __fastcall
ISchemaAttributeDispT<T>::get_use(void)
{
  Msxml2_tlb::SCHEMAUSE use;
  this->get_use((Msxml2_tlb::SCHEMAUSE*)&use);
  return use;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_isReference(TOLEBOOL* reference/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("isReference"), DISPID(1444));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(reference /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaAttributeDispT<T>::get_isReference(void)
{
  TOLEBOOL reference;
  this->get_isReference((TOLEBOOL*)&reference);
  return reference;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaAttributeDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaAttributeDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaAttributeDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaAttributeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                          TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaAttributeDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaAttributeGroup
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BA-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_anyAttribute(Msxml2_tlb::ISchemaAnyPtr* anyAttribute/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("anyAttribute"), DISPID(1425));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaAny**)anyAttribute /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaAnyPtr __fastcall
ISchemaAttributeGroupDispT<T>::get_anyAttribute(void)
{
  Msxml2_tlb::ISchemaAnyPtr anyAttribute;
  this->get_anyAttribute((Msxml2_tlb::ISchemaAnyPtr*)&anyAttribute);
  return anyAttribute;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_attributes(Msxml2_tlb::ISchemaItemCollectionPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(1427));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaItemCollection**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaItemCollectionPtr __fastcall
ISchemaAttributeGroupDispT<T>::get_attributes(void)
{
  Msxml2_tlb::ISchemaItemCollectionPtr attributes;
  this->get_attributes((Msxml2_tlb::ISchemaItemCollectionPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeGroupDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeGroupDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaAttributeGroupDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaAttributeGroupDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaAttributeGroupDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaAttributeGroupDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaAttributeGroupDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                               TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaAttributeGroupDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaIdentityConstraint
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BD-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_selector(BSTR* selector/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("selector"), DISPID(1470));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(selector /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaIdentityConstraintDispT<T>::get_selector(void)
{
  BSTR selector;
  this->get_selector((BSTR*)&selector);
  return selector;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_fields(Msxml2_tlb::ISchemaStringCollectionPtr* fields/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fields"), DISPID(1436));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaStringCollection**)fields /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaStringCollectionPtr __fastcall
ISchemaIdentityConstraintDispT<T>::get_fields(void)
{
  Msxml2_tlb::ISchemaStringCollectionPtr fields;
  this->get_fields((Msxml2_tlb::ISchemaStringCollectionPtr*)&fields);
  return fields;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_referencedKey(Msxml2_tlb::ISchemaIdentityConstraintPtr* key/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("referencedKey"), DISPID(1466));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchemaIdentityConstraint**)key /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaIdentityConstraintPtr __fastcall
ISchemaIdentityConstraintDispT<T>::get_referencedKey(void)
{
  Msxml2_tlb::ISchemaIdentityConstraintPtr key;
  this->get_referencedKey((Msxml2_tlb::ISchemaIdentityConstraintPtr*)&key);
  return key;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaIdentityConstraintDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaIdentityConstraintDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaIdentityConstraintDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaIdentityConstraintDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaIdentityConstraintDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaIdentityConstraintDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaIdentityConstraintDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                                   TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaIdentityConstraintDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  ISchemaNotation
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {50EA08BE-DD1B-4664-9A50-C2F40F4BD79A}
// *********************************************************************//
template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_systemIdentifier(BSTR* uri/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("systemIdentifier"), DISPID(1473));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(uri /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaNotationDispT<T>::get_systemIdentifier(void)
{
  BSTR uri;
  this->get_systemIdentifier((BSTR*)&uri);
  return uri;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_publicIdentifier(BSTR* uri/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("publicIdentifier"), DISPID(1465));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(uri /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaNotationDispT<T>::get_publicIdentifier(void)
{
  BSTR uri;
  this->get_publicIdentifier((BSTR*)&uri);
  return uri;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_name(BSTR* name/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(1457));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(name /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaNotationDispT<T>::get_name(void)
{
  BSTR name;
  this->get_name((BSTR*)&name);
  return name;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_namespaceURI(BSTR* namespaceURI/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("namespaceURI"), DISPID(1459));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(namespaceURI /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaNotationDispT<T>::get_namespaceURI(void)
{
  BSTR namespaceURI;
  this->get_namespaceURI((BSTR*)&namespaceURI);
  return namespaceURI;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_schema(Msxml2_tlb::ISchemaPtr* schema/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("schema"), DISPID(1467));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::ISchema**)schema /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::ISchemaPtr __fastcall
ISchemaNotationDispT<T>::get_schema(void)
{
  Msxml2_tlb::ISchemaPtr schema;
  this->get_schema((Msxml2_tlb::ISchemaPtr*)&schema);
  return schema;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_id(BSTR* id/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("id"), DISPID(1440));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(id /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
ISchemaNotationDispT<T>::get_id(void)
{
  BSTR id;
  this->get_id((BSTR*)&id);
  return id;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_itemType(Msxml2_tlb::SOMITEMTYPE* itemType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("itemType"), DISPID(1446));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((int*)itemType /*[VT_USERDEFINED:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::SOMITEMTYPE __fastcall
ISchemaNotationDispT<T>::get_itemType(void)
{
  Msxml2_tlb::SOMITEMTYPE itemType;
  this->get_itemType((Msxml2_tlb::SOMITEMTYPE*)&itemType);
  return itemType;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::get_unhandledAttributes(Msxml2_tlb::IVBSAXAttributesPtr* attributes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("unhandledAttributes"), DISPID(1478));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IVBSAXAttributes**)attributes /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IVBSAXAttributesPtr __fastcall
ISchemaNotationDispT<T>::get_unhandledAttributes(void)
{
  Msxml2_tlb::IVBSAXAttributesPtr attributes;
  this->get_unhandledAttributes((Msxml2_tlb::IVBSAXAttributesPtr*)&attributes);
  return attributes;
}

template <class T> HRESULT __fastcall
ISchemaNotationDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/, 
                                         TOLEBOOL* isWritten/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("writeAnnotation"), DISPID(1483));
  TAutoArgs<1> _args;
  _args[1] = annotationSink /*[VT_UNKNOWN:0]*/;
  return OutRetValSetterPtr(isWritten /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
ISchemaNotationDispT<T>::writeAnnotation(LPUNKNOWN annotationSink/*[in]*/)
{
  TOLEBOOL isWritten;
  this->writeAnnotation(annotationSink, (TOLEBOOL*)&isWritten);
  return isWritten;
}

// *********************************************************************//
// DispIntf:  IXMLElementCollection
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {65725580-9B5D-11D0-9BFE-00C04FC99C8E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLElementCollectionDispT<T>::set_length(long p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(65537));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementCollectionDispT<T>::get_length(long* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(65537));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLElementCollectionDispT<T>::get_length(void)
{
  long p;
  this->get_length((long*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLElementCollectionDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLElementCollectionDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

template <class T> HRESULT __fastcall
IXMLElementCollectionDispT<T>::item(TVariantInParam var1/*[in,opt]*/, 
                                    TVariantInParam var2/*[in,opt]*/, 
                                    LPDISPATCH* ppDisp/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(65539));
  TAutoArgs<2> _args;
  _args[1] = var1 /*[VT_VARIANT:0]*/;
  _args[2] = var2 /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(ppDisp /*[VT_DISPATCH:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IXMLElementCollectionDispT<T>::item(TVariantInParam var1/*[in,opt]*/, 
                                    TVariantInParam var2/*[in,opt]*/)
{
  LPDISPATCH ppDisp;
  this->item(var1, var2, (LPDISPATCH*)&ppDisp);
  return ppDisp;
}

// *********************************************************************//
// DispIntf:  IXMLDocument
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {F52E2B61-18A1-11D1-B105-00805F49916B}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_root(Msxml2_tlb::IXMLElementPtr* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("root"), DISPID(65637));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElement**)p /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementPtr __fastcall
IXMLDocumentDispT<T>::get_root(void)
{
  Msxml2_tlb::IXMLElementPtr p;
  this->get_root((Msxml2_tlb::IXMLElementPtr*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_fileSize(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fileSize"), DISPID(65638));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_fileSize(void)
{
  BSTR p;
  this->get_fileSize((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_fileModifiedDate(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fileModifiedDate"), DISPID(65639));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_fileModifiedDate(void)
{
  BSTR p;
  this->get_fileModifiedDate((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_fileUpdatedDate(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("fileUpdatedDate"), DISPID(65640));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_fileUpdatedDate(void)
{
  BSTR p;
  this->get_fileUpdatedDate((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_url(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("url"), DISPID(65641));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_url(void)
{
  BSTR p;
  this->get_url((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::set_url(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("url"), DISPID(65641));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_mimeType(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("mimeType"), DISPID(65642));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_mimeType(void)
{
  BSTR p;
  this->get_mimeType((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_readyState(long* pl/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(65643));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pl /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDocumentDispT<T>::get_readyState(void)
{
  long pl;
  this->get_readyState((long*)&pl);
  return pl;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_charset(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("charset"), DISPID(65645));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_charset(void)
{
  BSTR p;
  this->get_charset((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::set_charset(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("charset"), DISPID(65645));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_version(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("version"), DISPID(65646));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_version(void)
{
  BSTR p;
  this->get_version((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_doctype(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("doctype"), DISPID(65647));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_doctype(void)
{
  BSTR p;
  this->get_doctype((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::get_dtdURL(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("dtdURL"), DISPID(65648));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDocumentDispT<T>::get_dtdURL(void)
{
  BSTR p;
  this->get_dtdURL((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLDocumentDispT<T>::createElement(TVariantInParam vType/*[in]*/, TVariantInParam var1/*[in,opt]*/
                                    , Msxml2_tlb::IXMLElementPtr* ppElem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("createElement"), DISPID(65644));
  TAutoArgs<2> _args;
  _args[1] = vType /*[VT_VARIANT:0]*/;
  _args[2] = var1 /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElement**)ppElem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementPtr __fastcall
IXMLDocumentDispT<T>::createElement(TVariantInParam vType/*[in]*/, TVariantInParam var1/*[in,opt]*/)
{
  Msxml2_tlb::IXMLElementPtr ppElem;
  this->createElement(vType, var1, (Msxml2_tlb::IXMLElementPtr*)&ppElem);
  return ppElem;
}

// *********************************************************************//
// DispIntf:  IXMLElement
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {3F7F31AC-E15F-11D0-9C25-00C04FC99C8E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLElementDispT<T>::get_tagName(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("tagName"), DISPID(65737));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLElementDispT<T>::get_tagName(void)
{
  BSTR p;
  this->get_tagName((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::set_tagName(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("tagName"), DISPID(65737));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::get_parent(Msxml2_tlb::IXMLElementPtr* ppParent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parent"), DISPID(65738));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElement**)ppParent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementPtr __fastcall
IXMLElementDispT<T>::get_parent(void)
{
  Msxml2_tlb::IXMLElementPtr ppParent;
  this->get_parent((Msxml2_tlb::IXMLElementPtr*)&ppParent);
  return ppParent;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::setAttribute(BSTR strPropertyName/*[in]*/, 
                                  TVariantInParam PropertyValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttribute"), DISPID(65739));
  TAutoArgs<2> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  _args[2] = PropertyValue /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::getAttribute(BSTR strPropertyName/*[in]*/, 
                                  TVariant* PropertyValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAttribute"), DISPID(65740));
  TAutoArgs<1> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PropertyValue /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLElementDispT<T>::getAttribute(BSTR strPropertyName/*[in]*/)
{
  TVariant PropertyValue;
  this->getAttribute(strPropertyName, (TVariant*)&PropertyValue);
  return PropertyValue;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::removeAttribute(BSTR strPropertyName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeAttribute"), DISPID(65741));
  TAutoArgs<1> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("children"), DISPID(65742));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElementCollection**)pp /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementCollectionPtr __fastcall
IXMLElementDispT<T>::get_children(void)
{
  Msxml2_tlb::IXMLElementCollectionPtr pp;
  this->get_children((Msxml2_tlb::IXMLElementCollectionPtr*)&pp);
  return pp;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::get_type(long* plType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("type"), DISPID(65743));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plType /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLElementDispT<T>::get_type(void)
{
  long plType;
  this->get_type((long*)&plType);
  return plType;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::get_text(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(65744));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLElementDispT<T>::get_text(void)
{
  BSTR p;
  this->get_text((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::set_text(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(65744));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::addChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/, long lIndex, 
                              long lReserved)
{
  _TDispID _dispid(*this, OLETEXT("addChild"), DISPID(65745));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLElement*)pChildElem /*[VT_USERDEFINED:1]*/;
  _args[2] = lIndex /*[VT_I4:0]*/;
  _args[3] = lReserved /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElementDispT<T>::removeChild(Msxml2_tlb::IXMLElementPtr pChildElem/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(65746));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLElement*)pChildElem /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IXMLElement2
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {2B8DE2FF-8D2D-11D1-B2FC-00C04FD915A9}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_tagName(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("tagName"), DISPID(65737));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLElement2DispT<T>::get_tagName(void)
{
  BSTR p;
  this->get_tagName((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::set_tagName(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("tagName"), DISPID(65737));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_parent(Msxml2_tlb::IXMLElement2Ptr* ppParent/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("parent"), DISPID(65738));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElement2**)ppParent /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElement2Ptr __fastcall
IXMLElement2DispT<T>::get_parent(void)
{
  Msxml2_tlb::IXMLElement2Ptr ppParent;
  this->get_parent((Msxml2_tlb::IXMLElement2Ptr*)&ppParent);
  return ppParent;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::setAttribute(BSTR strPropertyName/*[in]*/, 
                                   TVariantInParam PropertyValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setAttribute"), DISPID(65739));
  TAutoArgs<2> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  _args[2] = PropertyValue /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::getAttribute(BSTR strPropertyName/*[in]*/, 
                                   TVariant* PropertyValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAttribute"), DISPID(65740));
  TAutoArgs<1> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(PropertyValue /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLElement2DispT<T>::getAttribute(BSTR strPropertyName/*[in]*/)
{
  TVariant PropertyValue;
  this->getAttribute(strPropertyName, (TVariant*)&PropertyValue);
  return PropertyValue;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::removeAttribute(BSTR strPropertyName/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeAttribute"), DISPID(65741));
  TAutoArgs<1> _args;
  _args[1] = strPropertyName /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_children(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("children"), DISPID(65742));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElementCollection**)pp /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementCollectionPtr __fastcall
IXMLElement2DispT<T>::get_children(void)
{
  Msxml2_tlb::IXMLElementCollectionPtr pp;
  this->get_children((Msxml2_tlb::IXMLElementCollectionPtr*)&pp);
  return pp;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_type(long* plType/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("type"), DISPID(65743));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plType /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLElement2DispT<T>::get_type(void)
{
  long plType;
  this->get_type((long*)&plType);
  return plType;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_text(BSTR* p/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(65744));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(p /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLElement2DispT<T>::get_text(void)
{
  BSTR p;
  this->get_text((BSTR*)&p);
  return p;
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::set_text(BSTR p/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("text"), DISPID(65744));
  TAutoArgs<1> _args;
  _args[1] = p /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::addChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/, long lIndex, 
                               long lReserved)
{
  _TDispID _dispid(*this, OLETEXT("addChild"), DISPID(65745));
  TAutoArgs<3> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLElement2*)pChildElem /*[VT_USERDEFINED:1]*/;
  _args[2] = lIndex /*[VT_I4:0]*/;
  _args[3] = lReserved /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::removeChild(Msxml2_tlb::IXMLElement2Ptr pChildElem/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeChild"), DISPID(65746));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLElement2*)pChildElem /*[VT_USERDEFINED:1]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLElement2DispT<T>::get_attributes(Msxml2_tlb::IXMLElementCollectionPtr* pp/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("attributes"), DISPID(65747));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLElementCollection**)pp /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLElementCollectionPtr __fastcall
IXMLElement2DispT<T>::get_attributes(void)
{
  Msxml2_tlb::IXMLElementCollectionPtr pp;
  this->get_attributes((Msxml2_tlb::IXMLElementCollectionPtr*)&pp);
  return pp;
}

// *********************************************************************//
// DispIntf:  IXMLAttribute
// Flags:     (4432) Hidden Dual OleAutomation Dispatchable
// GUID:      {D4D4A0FC-3B73-11D1-B2B4-00C04FB92596}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLAttributeDispT<T>::get_name(BSTR* n/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("name"), DISPID(65937));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(n /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLAttributeDispT<T>::get_name(void)
{
  BSTR n;
  this->get_name((BSTR*)&n);
  return n;
}

template <class T> HRESULT __fastcall
IXMLAttributeDispT<T>::get_value(BSTR* v/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("value"), DISPID(65938));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(v /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLAttributeDispT<T>::get_value(void)
{
  BSTR v;
  this->get_value((BSTR*)&v);
  return v;
}

// *********************************************************************//
// DispIntf:  IXMLDOMSelection
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {AA634FC7-5888-44A7-A257-3A47150D3A0E}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::get_expr(BSTR* expression/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("expr"), DISPID(81));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(expression /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLDOMSelectionDispT<T>::get_expr(void)
{
  BSTR expression;
  this->get_expr((BSTR*)&expression);
  return expression;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::set_expr(BSTR expression/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("expr"), DISPID(81));
  TAutoArgs<1> _args;
  _args[1] = expression /*[VT_BSTR:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::get_context(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("context"), DISPID(82));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)ppNode /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::get_context(void)
{
  Msxml2_tlb::IXMLDOMNodePtr ppNode;
  this->get_context((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode);
  return ppNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::_set_context(Msxml2_tlb::IXMLDOMNodePtr ppNode/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("context"), DISPID(82));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)ppNode /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::peekNode(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("peekNode"), DISPID(83));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)ppNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::peekNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr ppNode;
  this->peekNode((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode);
  return ppNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/, 
                                  Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("matches"), DISPID(84));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)pNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)ppNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::matches(Msxml2_tlb::IXMLDOMNodePtr pNode/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr ppNode;
  this->matches(pNode, (Msxml2_tlb::IXMLDOMNodePtr*)&ppNode);
  return ppNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::removeNext(Msxml2_tlb::IXMLDOMNodePtr* ppNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("removeNext"), DISPID(85));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)ppNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::removeNext(void)
{
  Msxml2_tlb::IXMLDOMNodePtr ppNode;
  this->removeNext((Msxml2_tlb::IXMLDOMNodePtr*)&ppNode);
  return ppNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::removeAll()
{
  _TDispID _dispid(*this, OLETEXT("removeAll"), DISPID(86));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::clone(Msxml2_tlb::IXMLDOMSelectionPtr* ppNode/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("clone"), DISPID(87));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMSelection**)ppNode /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMSelectionPtr __fastcall
IXMLDOMSelectionDispT<T>::clone(void)
{
  Msxml2_tlb::IXMLDOMSelectionPtr ppNode;
  this->clone((Msxml2_tlb::IXMLDOMSelectionPtr*)&ppNode);
  return ppNode;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::getProperty(BSTR name/*[in]*/, TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getProperty"), DISPID(88));
  TAutoArgs<1> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLDOMSelectionDispT<T>::getProperty(BSTR name/*[in]*/)
{
  TVariant value;
  this->getProperty(name, (TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::setProperty(BSTR name/*[in]*/, TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setProperty"), DISPID(89));
  TAutoArgs<2> _args;
  _args[1] = name /*[VT_BSTR:0]*/;
  _args[2] = value /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::get_item(long index/*[in]*/, 
                                   Msxml2_tlb::IXMLDOMNodePtr* listItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)listItem /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::get_item(long index/*[in]*/)
{
  Msxml2_tlb::IXMLDOMNodePtr listItem;
  this->get_item(index, (Msxml2_tlb::IXMLDOMNodePtr*)&listItem);
  return listItem;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::get_length(long* listLength/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(74));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(listLength /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLDOMSelectionDispT<T>::get_length(void)
{
  long listLength;
  this->get_length((long*)&listLength);
  return listLength;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::nextNode(Msxml2_tlb::IXMLDOMNodePtr* nextItem/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("nextNode"), DISPID(76));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMNode**)nextItem /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMNodePtr __fastcall
IXMLDOMSelectionDispT<T>::nextNode(void)
{
  Msxml2_tlb::IXMLDOMNodePtr nextItem;
  this->nextNode((Msxml2_tlb::IXMLDOMNodePtr*)&nextItem);
  return nextItem;
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::reset()
{
  _TDispID _dispid(*this, OLETEXT("reset"), DISPID(77));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLDOMSelectionDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IXMLDOMSelectionDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// DispIntf:  XMLDOMDocumentEvents
// Flags:     (4112) Hidden Dispatchable
// GUID:      {3EFAA427-272F-11D2-836F-0000F87A7782}
// *********************************************************************//
template <class T> HRESULT __fastcall
XMLDOMDocumentEventsDispT<T>::ondataavailable()
{
  _TDispID _dispid(/* ondataavailable */ DISPID(198));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
XMLDOMDocumentEventsDispT<T>::onreadystatechange()
{
  _TDispID _dispid(/* onreadystatechange */ DISPID(-609));
  return OleFunction(_dispid);
}

// *********************************************************************//
// SmartIntf: TCOMIDSOControl
// Interface: IDSOControl
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIDSOControlT<T>::get_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr* ppDoc/*[out,retval]*/)
{
  return (*this)->get_XMLDocument(ppDoc);
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
TCOMIDSOControlT<T>::get_XMLDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr ppDoc;
  OLECHECK(this->get_XMLDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&ppDoc));
  return ppDoc;
}

template <class T> HRESULT __fastcall
TCOMIDSOControlT<T>::set_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr ppDoc/*[in]*/)
{
  return (*this)->set_XMLDocument(ppDoc);
}

template <class T> HRESULT __fastcall
TCOMIDSOControlT<T>::get_JavaDSOCompatible(long* fJavaDSOCompatible/*[out,retval]*/)
{
  return (*this)->get_JavaDSOCompatible(fJavaDSOCompatible);
}

template <class T> long __fastcall
TCOMIDSOControlT<T>::get_JavaDSOCompatible(void)
{
  long fJavaDSOCompatible;
  OLECHECK(this->get_JavaDSOCompatible((long*)&fJavaDSOCompatible));
  return fJavaDSOCompatible;
}

template <class T> HRESULT __fastcall
TCOMIDSOControlT<T>::set_JavaDSOCompatible(long fJavaDSOCompatible/*[in]*/)
{
  return (*this)->set_JavaDSOCompatible(fJavaDSOCompatible);
}

template <class T> HRESULT __fastcall
TCOMIDSOControlT<T>::get_readyState(long* state/*[out,retval]*/)
{
  return (*this)->get_readyState(state);
}

template <class T> long __fastcall
TCOMIDSOControlT<T>::get_readyState(void)
{
  long state;
  OLECHECK(this->get_readyState((long*)&state));
  return state;
}

// *********************************************************************//
// DispIntf:  IDSOControl
// Flags:     (4560) Hidden Dual NonExtensible OleAutomation Dispatchable
// GUID:      {310AFA62-0575-11D2-9CA9-0060B0EC3D39}
// *********************************************************************//
template <class T> HRESULT __fastcall
IDSOControlDispT<T>::get_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr* ppDoc/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("XMLDocument"), DISPID(65537));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IXMLDOMDocument**)ppDoc /*[VT_USERDEFINED:2]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> Msxml2_tlb::IXMLDOMDocumentPtr __fastcall
IDSOControlDispT<T>::get_XMLDocument(void)
{
  Msxml2_tlb::IXMLDOMDocumentPtr ppDoc;
  this->get_XMLDocument((Msxml2_tlb::IXMLDOMDocumentPtr*)&ppDoc);
  return ppDoc;
}

template <class T> HRESULT __fastcall
IDSOControlDispT<T>::set_XMLDocument(Msxml2_tlb::IXMLDOMDocumentPtr ppDoc/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("XMLDocument"), DISPID(65537));
  TAutoArgs<1> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMDocument*)ppDoc /*[VT_USERDEFINED:1]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDSOControlDispT<T>::get_JavaDSOCompatible(long* fJavaDSOCompatible/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("JavaDSOCompatible"), DISPID(65538));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fJavaDSOCompatible /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDSOControlDispT<T>::get_JavaDSOCompatible(void)
{
  long fJavaDSOCompatible;
  this->get_JavaDSOCompatible((long*)&fJavaDSOCompatible);
  return fJavaDSOCompatible;
}

template <class T> HRESULT __fastcall
IDSOControlDispT<T>::set_JavaDSOCompatible(long fJavaDSOCompatible/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("JavaDSOCompatible"), DISPID(65538));
  TAutoArgs<1> _args;
  _args[1] = fJavaDSOCompatible /*[VT_I4:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IDSOControlDispT<T>::get_readyState(long* state/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(-525));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(state /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IDSOControlDispT<T>::get_readyState(void)
{
  long state;
  this->get_readyState((long*)&state);
  return state;
}

// *********************************************************************//
// SmartIntf: TCOMIXMLHTTPRequest
// Interface: IXMLHTTPRequest
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                              TVariantInParam varAsync/*[in,opt]*/, 
                              TVariantInParam bstrUser/*[in,opt]*/, 
                              TVariantInParam bstrPassword/*[in,opt]*/)
{
  return (*this)->open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/)
{
  return (*this)->setRequestHeader(bstrHeader, bstrValue);
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/, BSTR* pbstrValue/*[out,retval]*/)
{
  return (*this)->getResponseHeader(bstrHeader, pbstrValue);
}

template <class T> BSTR __fastcall
TCOMIXMLHTTPRequestT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/)
{
  BSTR pbstrValue = 0;
  OLECHECK(this->getResponseHeader(bstrHeader, (BSTR*)&pbstrValue));
  return pbstrValue;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/)
{
  return (*this)->getAllResponseHeaders(pbstrHeaders);
}

template <class T> BSTR __fastcall
TCOMIXMLHTTPRequestT<T>::getAllResponseHeaders(void)
{
  BSTR pbstrHeaders = 0;
  OLECHECK(this->getAllResponseHeaders((BSTR*)&pbstrHeaders));
  return pbstrHeaders;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::send(TVariantInParam varBody/*[in,opt]*/)
{
  return (*this)->send(varBody);
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::abort(void)
{
  return (*this)->abort();
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_status(long* plStatus/*[out,retval]*/)
{
  return (*this)->get_status(plStatus);
}

template <class T> long __fastcall
TCOMIXMLHTTPRequestT<T>::get_status(void)
{
  long plStatus;
  OLECHECK(this->get_status((long*)&plStatus));
  return plStatus;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_statusText(BSTR* pbstrStatus/*[out,retval]*/)
{
  return (*this)->get_statusText(pbstrStatus);
}

template <class T> BSTR __fastcall
TCOMIXMLHTTPRequestT<T>::get_statusText(void)
{
  BSTR pbstrStatus = 0;
  OLECHECK(this->get_statusText((BSTR*)&pbstrStatus));
  return pbstrStatus;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/)
{
  return (*this)->get_responseXML(ppBody);
}

template <class T> LPDISPATCH __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseXML(void)
{
  LPDISPATCH ppBody;
  OLECHECK(this->get_responseXML((LPDISPATCH*)&ppBody));
  return ppBody;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseText(BSTR* pbstrBody/*[out,retval]*/)
{
  return (*this)->get_responseText(pbstrBody);
}

template <class T> BSTR __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseText(void)
{
  BSTR pbstrBody = 0;
  OLECHECK(this->get_responseText((BSTR*)&pbstrBody));
  return pbstrBody;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseBody(TVariant* pvarBody/*[out,retval]*/)
{
  return (*this)->get_responseBody(pvarBody);
}

template <class T> TVariant __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseBody(void)
{
  TVariant pvarBody;
  OLECHECK(this->get_responseBody((TVariant*)&pvarBody));
  return pvarBody;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseStream(TVariant* pvarBody/*[out,retval]*/)
{
  return (*this)->get_responseStream(pvarBody);
}

template <class T> TVariant __fastcall
TCOMIXMLHTTPRequestT<T>::get_responseStream(void)
{
  TVariant pvarBody;
  OLECHECK(this->get_responseStream((TVariant*)&pvarBody));
  return pvarBody;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::get_readyState(long* plState/*[out,retval]*/)
{
  return (*this)->get_readyState(plState);
}

template <class T> long __fastcall
TCOMIXMLHTTPRequestT<T>::get_readyState(void)
{
  long plState;
  OLECHECK(this->get_readyState((long*)&plState));
  return plState;
}

template <class T> HRESULT __fastcall
TCOMIXMLHTTPRequestT<T>::set_onreadystatechange(LPDISPATCH Param1/*[in]*/)
{
  return (*this)->set_onreadystatechange(Param1);
}

// *********************************************************************//
// DispIntf:  IXMLHTTPRequest
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {ED8C108D-4349-11D2-91A4-00C04F7969E8}
// *********************************************************************//
template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                              TVariantInParam varAsync/*[in,opt]*/, 
                              TVariantInParam bstrUser/*[in,opt]*/, 
                              TVariantInParam bstrPassword/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("open"), DISPID(1));
  TAutoArgs<5> _args;
  _args[1] = bstrMethod /*[VT_BSTR:0]*/;
  _args[2] = bstrUrl /*[VT_BSTR:0]*/;
  _args[3] = varAsync /*[VT_VARIANT:0]*/;
  _args[4] = bstrUser /*[VT_VARIANT:0]*/;
  _args[5] = bstrPassword /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setRequestHeader"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  _args[2] = bstrValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/, BSTR* pbstrValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getResponseHeader"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(pbstrValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLHTTPRequestDispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/)
{
  BSTR pbstrValue;
  this->getResponseHeader(bstrHeader, (BSTR*)&pbstrValue);
  return pbstrValue;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAllResponseHeaders"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrHeaders /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLHTTPRequestDispT<T>::getAllResponseHeaders(void)
{
  BSTR pbstrHeaders;
  this->getAllResponseHeaders((BSTR*)&pbstrHeaders);
  return pbstrHeaders;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::send(TVariantInParam varBody/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("send"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = varBody /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(6));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_status(long* plStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("status"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plStatus /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLHTTPRequestDispT<T>::get_status(void)
{
  long plStatus;
  this->get_status((long*)&plStatus);
  return plStatus;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_statusText(BSTR* pbstrStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("statusText"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrStatus /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLHTTPRequestDispT<T>::get_statusText(void)
{
  BSTR pbstrStatus;
  this->get_statusText((BSTR*)&pbstrStatus);
  return pbstrStatus;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseXML"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppBody /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IXMLHTTPRequestDispT<T>::get_responseXML(void)
{
  LPDISPATCH ppBody;
  this->get_responseXML((LPDISPATCH*)&ppBody);
  return ppBody;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_responseText(BSTR* pbstrBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseText"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrBody /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IXMLHTTPRequestDispT<T>::get_responseText(void)
{
  BSTR pbstrBody;
  this->get_responseText((BSTR*)&pbstrBody);
  return pbstrBody;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_responseBody(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseBody"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLHTTPRequestDispT<T>::get_responseBody(void)
{
  TVariant pvarBody;
  this->get_responseBody((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_responseStream(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseStream"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IXMLHTTPRequestDispT<T>::get_responseStream(void)
{
  TVariant pvarBody;
  this->get_responseStream((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::get_readyState(long* plState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plState /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IXMLHTTPRequestDispT<T>::get_readyState(void)
{
  long plState;
  this->get_readyState((long*)&plState);
  return plState;
}

template <class T> HRESULT __fastcall
IXMLHTTPRequestDispT<T>::set_onreadystatechange(LPDISPATCH Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("onreadystatechange"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_DISPATCH:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIServerXMLHTTPRequest
// Interface: IServerXMLHTTPRequest
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequestT<T>::setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/, 
                                           long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/)
{
  return (*this)->setTimeouts(resolveTimeout, connectTimeout, sendTimeout, receiveTimeout);
}

template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequestT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                               TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  return (*this)->waitForResponse(timeoutInSeconds, isSuccessful);
}

template <class T> TOLEBOOL __fastcall
TCOMIServerXMLHTTPRequestT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/)
{
  TOLEBOOL isSuccessful;
  OLECHECK(this->waitForResponse(timeoutInSeconds, (TOLEBOOL*)&isSuccessful));
  return isSuccessful;
}

template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequestT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                         TVariant* value/*[out,retval]*/)
{
  return (*this)->getOption(option, value);
}

template <class T> TVariant __fastcall
TCOMIServerXMLHTTPRequestT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/)
{
  TVariant value;
  OLECHECK(this->getOption(option, (TVariant*)&value));
  return value;
}

template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequestT<T>::setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                         TVariantInParam value/*[in]*/)
{
  return (*this)->setOption(option, value);
}

// *********************************************************************//
// DispIntf:  IServerXMLHTTPRequest
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2E9196BF-13BA-4DD4-91CA-6C571F281495}
// *********************************************************************//
template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/
                                           , long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setTimeouts"), DISPID(15));
  TAutoArgs<4> _args;
  _args[1] = resolveTimeout /*[VT_I4:0]*/;
  _args[2] = connectTimeout /*[VT_I4:0]*/;
  _args[3] = sendTimeout /*[VT_I4:0]*/;
  _args[4] = receiveTimeout /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                               TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("waitForResponse"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = timeoutInSeconds /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IServerXMLHTTPRequestDispT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/)
{
  TOLEBOOL isSuccessful;
  this->waitForResponse(timeoutInSeconds, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                         TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getOption"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = (int)option /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequestDispT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/)
{
  TVariant value;
  this->getOption(option, (TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                         TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setOption"), DISPID(18));
  TAutoArgs<2> _args;
  _args[1] = (int)option /*[VT_USERDEFINED:0]*/;
  _args[2] = value /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                    TVariantInParam varAsync/*[in,opt]*/, 
                                    TVariantInParam bstrUser/*[in,opt]*/, 
                                    TVariantInParam bstrPassword/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("open"), DISPID(1));
  TAutoArgs<5> _args;
  _args[1] = bstrMethod /*[VT_BSTR:0]*/;
  _args[2] = bstrUrl /*[VT_BSTR:0]*/;
  _args[3] = varAsync /*[VT_VARIANT:0]*/;
  _args[4] = bstrUser /*[VT_VARIANT:0]*/;
  _args[5] = bstrPassword /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setRequestHeader"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  _args[2] = bstrValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                                 BSTR* pbstrValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getResponseHeader"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(pbstrValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequestDispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/)
{
  BSTR pbstrValue;
  this->getResponseHeader(bstrHeader, (BSTR*)&pbstrValue);
  return pbstrValue;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAllResponseHeaders"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrHeaders /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequestDispT<T>::getAllResponseHeaders(void)
{
  BSTR pbstrHeaders;
  this->getAllResponseHeaders((BSTR*)&pbstrHeaders);
  return pbstrHeaders;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::send(TVariantInParam varBody/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("send"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = varBody /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(6));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_status(long* plStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("status"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plStatus /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IServerXMLHTTPRequestDispT<T>::get_status(void)
{
  long plStatus;
  this->get_status((long*)&plStatus);
  return plStatus;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_statusText(BSTR* pbstrStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("statusText"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrStatus /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequestDispT<T>::get_statusText(void)
{
  BSTR pbstrStatus;
  this->get_statusText((BSTR*)&pbstrStatus);
  return pbstrStatus;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseXML"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppBody /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseXML(void)
{
  LPDISPATCH ppBody;
  this->get_responseXML((LPDISPATCH*)&ppBody);
  return ppBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseText(BSTR* pbstrBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseText"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrBody /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseText(void)
{
  BSTR pbstrBody;
  this->get_responseText((BSTR*)&pbstrBody);
  return pbstrBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseBody(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseBody"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseBody(void)
{
  TVariant pvarBody;
  this->get_responseBody((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseStream(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseStream"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequestDispT<T>::get_responseStream(void)
{
  TVariant pvarBody;
  this->get_responseStream((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::get_readyState(long* plState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plState /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IServerXMLHTTPRequestDispT<T>::get_readyState(void)
{
  long plState;
  this->get_readyState((long*)&plState);
  return plState;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequestDispT<T>::set_onreadystatechange(LPDISPATCH Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("onreadystatechange"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_DISPATCH:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// SmartIntf: TCOMIServerXMLHTTPRequest2
// Interface: IServerXMLHTTPRequest2
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequest2T<T>::setProxy(Msxml2_tlb::SXH_PROXY_SETTING proxySetting/*[in]*/, 
                                         TVariantInParam varProxyServer/*[in,opt]*/, 
                                         TVariantInParam varBypassList/*[in,opt]*/)
{
  return (*this)->setProxy(proxySetting, varProxyServer, varBypassList);
}

template <class T> HRESULT __fastcall
TCOMIServerXMLHTTPRequest2T<T>::setProxyCredentials(BSTR bstrUserName/*[in]*/, 
                                                    BSTR bstrPassword/*[in]*/)
{
  return (*this)->setProxyCredentials(bstrUserName, bstrPassword);
}

// *********************************************************************//
// DispIntf:  IServerXMLHTTPRequest2
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {2E01311B-C322-4B0A-BD77-B90CFDC8DCE7}
// *********************************************************************//
template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::setProxy(Msxml2_tlb::SXH_PROXY_SETTING proxySetting/*[in]*/, 
                                         TVariantInParam varProxyServer/*[in,opt]*/, 
                                         TVariantInParam varBypassList/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("setProxy"), DISPID(19));
  TAutoArgs<3> _args;
  _args[1] = (int)proxySetting /*[VT_USERDEFINED:0]*/;
  _args[2] = varProxyServer /*[VT_VARIANT:0]*/;
  _args[3] = varBypassList /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::setProxyCredentials(BSTR bstrUserName/*[in]*/, 
                                                    BSTR bstrPassword/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setProxyCredentials"), DISPID(20));
  TAutoArgs<2> _args;
  _args[1] = bstrUserName /*[VT_BSTR:0]*/;
  _args[2] = bstrPassword /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::setTimeouts(long resolveTimeout/*[in]*/, long connectTimeout/*[in]*/
                                            , long sendTimeout/*[in]*/, long receiveTimeout/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setTimeouts"), DISPID(15));
  TAutoArgs<4> _args;
  _args[1] = resolveTimeout /*[VT_I4:0]*/;
  _args[2] = connectTimeout /*[VT_I4:0]*/;
  _args[3] = sendTimeout /*[VT_I4:0]*/;
  _args[4] = receiveTimeout /*[VT_I4:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/, 
                                                TOLEBOOL* isSuccessful/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("waitForResponse"), DISPID(16));
  TAutoArgs<1> _args;
  _args[1] = timeoutInSeconds /*[VT_VARIANT:0]*/;
  return OutRetValSetterPtr(isSuccessful /*[VT_BOOL:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IServerXMLHTTPRequest2DispT<T>::waitForResponse(TVariantInParam timeoutInSeconds/*[in,opt]*/)
{
  TOLEBOOL isSuccessful;
  this->waitForResponse(timeoutInSeconds, (TOLEBOOL*)&isSuccessful);
  return isSuccessful;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                          TVariant* value/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getOption"), DISPID(17));
  TAutoArgs<1> _args;
  _args[1] = (int)option /*[VT_USERDEFINED:0]*/;
  return OutRetValSetterPtr(value /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequest2DispT<T>::getOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/)
{
  TVariant value;
  this->getOption(option, (TVariant*)&value);
  return value;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::setOption(Msxml2_tlb::SERVERXMLHTTP_OPTION option/*[in]*/, 
                                          TVariantInParam value/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setOption"), DISPID(18));
  TAutoArgs<2> _args;
  _args[1] = (int)option /*[VT_USERDEFINED:0]*/;
  _args[2] = value /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::open(BSTR bstrMethod/*[in]*/, BSTR bstrUrl/*[in]*/, 
                                     TVariantInParam varAsync/*[in,opt]*/, 
                                     TVariantInParam bstrUser/*[in,opt]*/, 
                                     TVariantInParam bstrPassword/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("open"), DISPID(1));
  TAutoArgs<5> _args;
  _args[1] = bstrMethod /*[VT_BSTR:0]*/;
  _args[2] = bstrUrl /*[VT_BSTR:0]*/;
  _args[3] = varAsync /*[VT_VARIANT:0]*/;
  _args[4] = bstrUser /*[VT_VARIANT:0]*/;
  _args[5] = bstrPassword /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::setRequestHeader(BSTR bstrHeader/*[in]*/, BSTR bstrValue/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("setRequestHeader"), DISPID(2));
  TAutoArgs<2> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  _args[2] = bstrValue /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/, 
                                                  BSTR* pbstrValue/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getResponseHeader"), DISPID(3));
  TAutoArgs<1> _args;
  _args[1] = bstrHeader /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(pbstrValue /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequest2DispT<T>::getResponseHeader(BSTR bstrHeader/*[in]*/)
{
  BSTR pbstrValue;
  this->getResponseHeader(bstrHeader, (BSTR*)&pbstrValue);
  return pbstrValue;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::getAllResponseHeaders(BSTR* pbstrHeaders/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getAllResponseHeaders"), DISPID(4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrHeaders /*[VT_BSTR:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequest2DispT<T>::getAllResponseHeaders(void)
{
  BSTR pbstrHeaders;
  this->getAllResponseHeaders((BSTR*)&pbstrHeaders);
  return pbstrHeaders;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::send(TVariantInParam varBody/*[in,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("send"), DISPID(5));
  TAutoArgs<1> _args;
  _args[1] = varBody /*[VT_VARIANT:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::abort()
{
  _TDispID _dispid(*this, OLETEXT("abort"), DISPID(6));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_status(long* plStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("status"), DISPID(7));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plStatus /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IServerXMLHTTPRequest2DispT<T>::get_status(void)
{
  long plStatus;
  this->get_status((long*)&plStatus);
  return plStatus;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_statusText(BSTR* pbstrStatus/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("statusText"), DISPID(8));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrStatus /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequest2DispT<T>::get_statusText(void)
{
  BSTR pbstrStatus;
  this->get_statusText((BSTR*)&pbstrStatus);
  return pbstrStatus;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseXML(LPDISPATCH* ppBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseXML"), DISPID(9));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppBody /*[VT_DISPATCH:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPDISPATCH __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseXML(void)
{
  LPDISPATCH ppBody;
  this->get_responseXML((LPDISPATCH*)&ppBody);
  return ppBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseText(BSTR* pbstrBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseText"), DISPID(10));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pbstrBody /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseText(void)
{
  BSTR pbstrBody;
  this->get_responseText((BSTR*)&pbstrBody);
  return pbstrBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseBody(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseBody"), DISPID(11));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseBody(void)
{
  TVariant pvarBody;
  this->get_responseBody((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseStream(TVariant* pvarBody/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("responseStream"), DISPID(12));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(pvarBody /*[VT_VARIANT:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TVariant __fastcall
IServerXMLHTTPRequest2DispT<T>::get_responseStream(void)
{
  TVariant pvarBody;
  this->get_responseStream((TVariant*)&pvarBody);
  return pvarBody;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::get_readyState(long* plState/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("readyState"), DISPID(13));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(plState /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IServerXMLHTTPRequest2DispT<T>::get_readyState(void)
{
  long plState;
  this->get_readyState((long*)&plState);
  return plState;
}

template <class T> HRESULT __fastcall
IServerXMLHTTPRequest2DispT<T>::set_onreadystatechange(LPDISPATCH Param1/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("onreadystatechange"), DISPID(14));
  TAutoArgs<1> _args;
  _args[1] = Param1 /*[VT_DISPATCH:0]*/;
  return OlePropertyPut(_dispid, _args);
}

// *********************************************************************//
// DispIntf:  IMXNamespacePrefixes
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C90352F4-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IMXNamespacePrefixesDispT<T>::get_item(long index/*[in]*/, BSTR* prefix/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("item"), DISPID(0));
  TAutoArgs<1> _args;
  _args[1] = index /*[VT_I4:0]*/;
  return OutRetValSetterPtr(prefix /*[VT_BSTR:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> BSTR __fastcall
IMXNamespacePrefixesDispT<T>::get_item(long index/*[in]*/)
{
  BSTR prefix;
  this->get_item(index, (BSTR*)&prefix);
  return prefix;
}

template <class T> HRESULT __fastcall
IMXNamespacePrefixesDispT<T>::get_length(long* length/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("length"), DISPID(1416));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(length /*[VT_I4:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> long __fastcall
IMXNamespacePrefixesDispT<T>::get_length(void)
{
  long length;
  this->get_length((long*)&length);
  return length;
}

template <class T> HRESULT __fastcall
IMXNamespacePrefixesDispT<T>::get__newEnum(LPUNKNOWN* ppUnk/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("_newEnum"), DISPID(-4));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(ppUnk /*[VT_UNKNOWN:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> LPUNKNOWN __fastcall
IMXNamespacePrefixesDispT<T>::get__newEnum(void)
{
  LPUNKNOWN ppUnk;
  this->get__newEnum((LPUNKNOWN*)&ppUnk);
  return ppUnk;
}

// *********************************************************************//
// SmartIntf: TCOMIVBMXNamespaceManager
// Interface: IVBMXNamespaceManager
// *********************************************************************//
template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::set_allowOverride(TOLEBOOL fOverride/*[in]*/)
{
  return (*this)->set_allowOverride(fOverride);
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::get_allowOverride(TOLEBOOL* fOverride/*[out,retval]*/)
{
  return (*this)->get_allowOverride(fOverride);
}

template <class T> TOLEBOOL __fastcall
TCOMIVBMXNamespaceManagerT<T>::get_allowOverride(void)
{
  TOLEBOOL fOverride;
  OLECHECK(this->get_allowOverride((TOLEBOOL*)&fOverride));
  return fOverride;
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::reset(void)
{
  return (*this)->reset();
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::pushContext(void)
{
  return (*this)->pushContext();
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                               TOLEBOOL fDeep/*[in,def,opt]*/)
{
  return (*this)->pushNodeContext(contextNode, fDeep);
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::popContext(void)
{
  return (*this)->popContext();
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::declarePrefix(BSTR prefix/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  return (*this)->declarePrefix(prefix, namespaceURI);
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::getDeclaredPrefixes(Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/)
{
  return (*this)->getDeclaredPrefixes(prefixes);
}

template <class T> Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall
TCOMIVBMXNamespaceManagerT<T>::getDeclaredPrefixes(void)
{
  Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
  OLECHECK(this->getDeclaredPrefixes((Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes));
  return prefixes;
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::getPrefixes(BSTR namespaceURI/*[in]*/, 
                                           Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/)
{
  return (*this)->getPrefixes(namespaceURI, prefixes);
}

template <class T> Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall
TCOMIVBMXNamespaceManagerT<T>::getPrefixes(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
  OLECHECK(this->getPrefixes(namespaceURI, (Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes));
  return prefixes;
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::getURI(BSTR prefix/*[in]*/, TVariant* uri/*[out,retval]*/)
{
  return (*this)->getURI(prefix, uri);
}

template <class T> TVariant __fastcall
TCOMIVBMXNamespaceManagerT<T>::getURI(BSTR prefix/*[in]*/)
{
  TVariant uri;
  OLECHECK(this->getURI(prefix, (TVariant*)&uri));
  return uri;
}

template <class T> HRESULT __fastcall
TCOMIVBMXNamespaceManagerT<T>::getURIFromNode(BSTR strPrefix/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                              TVariant* uri/*[out,retval]*/)
{
  return (*this)->getURIFromNode(strPrefix, contextNode, uri);
}

template <class T> TVariant __fastcall
TCOMIVBMXNamespaceManagerT<T>::getURIFromNode(BSTR strPrefix/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/)
{
  TVariant uri;
  OLECHECK(this->getURIFromNode(strPrefix, contextNode, (TVariant*)&uri));
  return uri;
}

// *********************************************************************//
// DispIntf:  IVBMXNamespaceManager
// Flags:     (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID:      {C90352F5-643C-4FBC-BB23-E996EB2D51FD}
// *********************************************************************//
template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::set_allowOverride(TOLEBOOL fOverride/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("allowOverride"), DISPID(1406));
  TAutoArgs<1> _args;
  _args[1] = fOverride /*[VT_BOOL:0]*/;
  return OlePropertyPut(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::get_allowOverride(TOLEBOOL* fOverride/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("allowOverride"), DISPID(1406));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr(fOverride /*[VT_BOOL:1]*/, _args, OlePropertyGet(_dispid, _args));
}

template <class T> TOLEBOOL __fastcall
IVBMXNamespaceManagerDispT<T>::get_allowOverride(void)
{
  TOLEBOOL fOverride;
  this->get_allowOverride((TOLEBOOL*)&fOverride);
  return fOverride;
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::reset()
{
  _TDispID _dispid(*this, OLETEXT("reset"), DISPID(1407));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::pushContext()
{
  _TDispID _dispid(*this, OLETEXT("pushContext"), DISPID(1408));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::pushNodeContext(Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                               TOLEBOOL fDeep/*[in,def,opt]*/)
{
  _TDispID _dispid(*this, OLETEXT("pushNodeContext"), DISPID(1409));
  TAutoArgs<2> _args;
  _args[1] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)contextNode /*[VT_USERDEFINED:1]*/;
  _args[2] = fDeep /*[VT_BOOL:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::popContext()
{
  _TDispID _dispid(*this, OLETEXT("popContext"), DISPID(1410));
  return OleFunction(_dispid);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::declarePrefix(BSTR prefix/*[in]*/, BSTR namespaceURI/*[in]*/)
{
  _TDispID _dispid(*this, OLETEXT("declarePrefix"), DISPID(1411));
  TAutoArgs<2> _args;
  _args[1] = prefix /*[VT_BSTR:0]*/;
  _args[2] = namespaceURI /*[VT_BSTR:0]*/;
  return OleFunction(_dispid, _args);
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::getDeclaredPrefixes(Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getDeclaredPrefixes"), DISPID(1412));
  TAutoArgs<0> _args;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IMXNamespacePrefixes**)prefixes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall
IVBMXNamespaceManagerDispT<T>::getDeclaredPrefixes(void)
{
  Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
  this->getDeclaredPrefixes((Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes);
  return prefixes;
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::getPrefixes(BSTR namespaceURI/*[in]*/, 
                                           Msxml2_tlb::IMXNamespacePrefixesPtr* prefixes/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getPrefixes"), DISPID(1413));
  TAutoArgs<1> _args;
  _args[1] = namespaceURI /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr((LPDISPATCH*)(Msxml2_tlb::IMXNamespacePrefixes**)prefixes /*[VT_USERDEFINED:2]*/, _args, OleFunction(_dispid, _args));
}

template <class T> Msxml2_tlb::IMXNamespacePrefixesPtr __fastcall
IVBMXNamespaceManagerDispT<T>::getPrefixes(BSTR namespaceURI/*[in]*/)
{
  Msxml2_tlb::IMXNamespacePrefixesPtr prefixes;
  this->getPrefixes(namespaceURI, (Msxml2_tlb::IMXNamespacePrefixesPtr*)&prefixes);
  return prefixes;
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::getURI(BSTR prefix/*[in]*/, TVariant* uri/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getURI"), DISPID(1414));
  TAutoArgs<1> _args;
  _args[1] = prefix /*[VT_BSTR:0]*/;
  return OutRetValSetterPtr(uri /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IVBMXNamespaceManagerDispT<T>::getURI(BSTR prefix/*[in]*/)
{
  TVariant uri;
  this->getURI(prefix, (TVariant*)&uri);
  return uri;
}

template <class T> HRESULT __fastcall
IVBMXNamespaceManagerDispT<T>::getURIFromNode(BSTR strPrefix/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/, 
                                              TVariant* uri/*[out,retval]*/)
{
  _TDispID _dispid(*this, OLETEXT("getURIFromNode"), DISPID(1415));
  TAutoArgs<2> _args;
  _args[1] = strPrefix /*[VT_BSTR:0]*/;
  _args[2] = (LPDISPATCH)(Msxml2_tlb::IXMLDOMNode*)contextNode /*[VT_USERDEFINED:1]*/;
  return OutRetValSetterPtr(uri /*[VT_VARIANT:1]*/, _args, OleFunction(_dispid, _args));
}

template <class T> TVariant __fastcall
IVBMXNamespaceManagerDispT<T>::getURIFromNode(BSTR strPrefix/*[in]*/, 
                                              Msxml2_tlb::IXMLDOMNodePtr contextNode/*[in]*/)
{
  TVariant uri;
  this->getURIFromNode(strPrefix, contextNode, (TVariant*)&uri);
  return uri;
}

// *********************************************************************//
// Les typedefs suivants exposent les classes (CoCoClassName) qui  
// fournissent les méthodes statiques Create() et CreateRemote(LPWSTR machineName)  
// pour créer une instance d'objet exposé. Ces fonctions peuvent    
// être utilisés par les clients désirant automatiser les CoClasses exposées par cette  
// bibliothèque de types.                                                          
// *********************************************************************//

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DOMDocument
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_DOMDocument, &IID_IXMLDOMDocument2> CoDOMDocument;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DOMDocument26
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_DOMDocument26, &IID_IXMLDOMDocument2> CoDOMDocument26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DOMDocument30
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_DOMDocument30, &IID_IXMLDOMDocument2> CoDOMDocument30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DOMDocument40
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_DOMDocument40, &IID_IXMLDOMDocument2> CoDOMDocument40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : FreeThreadedDOMDocument
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_FreeThreadedDOMDocument, &IID_IXMLDOMDocument2> CoFreeThreadedDOMDocument;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : FreeThreadedDOMDocument26
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_FreeThreadedDOMDocument26, &IID_IXMLDOMDocument2> CoFreeThreadedDOMDocument26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : FreeThreadedDOMDocument30
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_FreeThreadedDOMDocument30, &IID_IXMLDOMDocument2> CoFreeThreadedDOMDocument30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : FreeThreadedDOMDocument40
// Interface: TCOMIXMLDOMDocument2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMDocument2, IXMLDOMDocument2, &CLSID_FreeThreadedDOMDocument40, &IID_IXMLDOMDocument2> CoFreeThreadedDOMDocument40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLSchemaCache
// Interface: TCOMIXMLDOMSchemaCollection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMSchemaCollection, IXMLDOMSchemaCollection, &CLSID_XMLSchemaCache, &IID_IXMLDOMSchemaCollection> CoXMLSchemaCache;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLSchemaCache26
// Interface: TCOMIXMLDOMSchemaCollection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMSchemaCollection, IXMLDOMSchemaCollection, &CLSID_XMLSchemaCache26, &IID_IXMLDOMSchemaCollection> CoXMLSchemaCache26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLSchemaCache30
// Interface: TCOMIXMLDOMSchemaCollection
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMSchemaCollection, IXMLDOMSchemaCollection, &CLSID_XMLSchemaCache30, &IID_IXMLDOMSchemaCollection> CoXMLSchemaCache30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLSchemaCache40
// Interface: TCOMIXMLDOMSchemaCollection2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLDOMSchemaCollection2, IXMLDOMSchemaCollection2, &CLSID_XMLSchemaCache40, &IID_IXMLDOMSchemaCollection2> CoXMLSchemaCache40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XSLTemplate
// Interface: TCOMIXSLTemplate
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXSLTemplate, IXSLTemplate, &CLSID_XSLTemplate, &IID_IXSLTemplate> CoXSLTemplate;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XSLTemplate26
// Interface: TCOMIXSLTemplate
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXSLTemplate, IXSLTemplate, &CLSID_XSLTemplate26, &IID_IXSLTemplate> CoXSLTemplate26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XSLTemplate30
// Interface: TCOMIXSLTemplate
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXSLTemplate, IXSLTemplate, &CLSID_XSLTemplate30, &IID_IXSLTemplate> CoXSLTemplate30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XSLTemplate40
// Interface: TCOMIXSLTemplate
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXSLTemplate, IXSLTemplate, &CLSID_XSLTemplate40, &IID_IXSLTemplate> CoXSLTemplate40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DSOControl
// Interface: TCOMIDSOControl
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDSOControl, IDSOControl, &CLSID_DSOControl, &IID_IDSOControl> CoDSOControl;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DSOControl26
// Interface: TCOMIDSOControl
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDSOControl, IDSOControl, &CLSID_DSOControl26, &IID_IDSOControl> CoDSOControl26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DSOControl30
// Interface: TCOMIDSOControl
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDSOControl, IDSOControl, &CLSID_DSOControl30, &IID_IDSOControl> CoDSOControl30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : DSOControl40
// Interface: TCOMIDSOControl
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIDSOControl, IDSOControl, &CLSID_DSOControl40, &IID_IDSOControl> CoDSOControl40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLHTTP
// Interface: TCOMIXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLHTTPRequest, IXMLHTTPRequest, &CLSID_XMLHTTP, &IID_IXMLHTTPRequest> CoXMLHTTP;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLHTTP26
// Interface: TCOMIXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLHTTPRequest, IXMLHTTPRequest, &CLSID_XMLHTTP26, &IID_IXMLHTTPRequest> CoXMLHTTP26;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLHTTP30
// Interface: TCOMIXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLHTTPRequest, IXMLHTTPRequest, &CLSID_XMLHTTP30, &IID_IXMLHTTPRequest> CoXMLHTTP30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLHTTP40
// Interface: TCOMIXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIXMLHTTPRequest, IXMLHTTPRequest, &CLSID_XMLHTTP40, &IID_IXMLHTTPRequest> CoXMLHTTP40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : ServerXMLHTTP
// Interface: TCOMIServerXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIServerXMLHTTPRequest, IServerXMLHTTPRequest, &CLSID_ServerXMLHTTP, &IID_IServerXMLHTTPRequest> CoServerXMLHTTP;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : ServerXMLHTTP30
// Interface: TCOMIServerXMLHTTPRequest
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIServerXMLHTTPRequest, IServerXMLHTTPRequest, &CLSID_ServerXMLHTTP30, &IID_IServerXMLHTTPRequest> CoServerXMLHTTP30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : ServerXMLHTTP40
// Interface: TCOMIServerXMLHTTPRequest2
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIServerXMLHTTPRequest2, IServerXMLHTTPRequest2, &CLSID_ServerXMLHTTP40, &IID_IServerXMLHTTPRequest2> CoServerXMLHTTP40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXXMLReader
// Interface: TCOMIVBSAXXMLReader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVBSAXXMLReader, IVBSAXXMLReader, &CLSID_SAXXMLReader, &IID_IVBSAXXMLReader> CoSAXXMLReader;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXXMLReader30
// Interface: TCOMIVBSAXXMLReader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVBSAXXMLReader, IVBSAXXMLReader, &CLSID_SAXXMLReader30, &IID_IVBSAXXMLReader> CoSAXXMLReader30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXXMLReader40
// Interface: TCOMIVBSAXXMLReader
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVBSAXXMLReader, IVBSAXXMLReader, &CLSID_SAXXMLReader40, &IID_IVBSAXXMLReader> CoSAXXMLReader40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXXMLWriter
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXXMLWriter, &IID_IMXWriter> CoMXXMLWriter;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXXMLWriter30
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXXMLWriter30, &IID_IMXWriter> CoMXXMLWriter30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXXMLWriter40
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXXMLWriter40, &IID_IMXWriter> CoMXXMLWriter40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXHTMLWriter
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXHTMLWriter, &IID_IMXWriter> CoMXHTMLWriter;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXHTMLWriter30
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXHTMLWriter30, &IID_IMXWriter> CoMXHTMLWriter30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXHTMLWriter40
// Interface: TCOMIMXWriter
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXWriter, IMXWriter, &CLSID_MXHTMLWriter40, &IID_IMXWriter> CoMXHTMLWriter40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXAttributes
// Interface: TCOMIMXAttributes
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXAttributes, IMXAttributes, &CLSID_SAXAttributes, &IID_IMXAttributes> CoSAXAttributes;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXAttributes30
// Interface: TCOMIMXAttributes
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXAttributes, IMXAttributes, &CLSID_SAXAttributes30, &IID_IMXAttributes> CoSAXAttributes30;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : SAXAttributes40
// Interface: TCOMIMXAttributes
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIMXAttributes, IMXAttributes, &CLSID_SAXAttributes40, &IID_IMXAttributes> CoSAXAttributes40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXNamespaceManager
// Interface: TCOMIVBMXNamespaceManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVBMXNamespaceManager, IVBMXNamespaceManager, &CLSID_MXNamespaceManager, &IID_IVBMXNamespaceManager> CoMXNamespaceManager;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : MXNamespaceManager40
// Interface: TCOMIVBMXNamespaceManager
// *********************************************************************//
typedef TCoClassCreatorT<TCOMIVBMXNamespaceManager, IVBMXNamespaceManager, &CLSID_MXNamespaceManager40, &IID_IVBMXNamespaceManager> CoMXNamespaceManager40;

// *********************************************************************//
// CREATEUR INTERFACE DEFAUT DE COCLASS
// CoClass  : XMLDocument
// Interface: IXMLDocument2Disp
// *********************************************************************//
typedef TCoClassCreatorT<IXMLDocument2Disp, IXMLDocument2, &CLSID_XMLDocument, &IID_IXMLDocument2> CoXMLDocument;
#endif  //   __TLB_NO_INTERFACE_WRAPPERS


#if !defined(__TLB_NO_EVENT_WRAPPERS) && defined(USING_ATLVCL)
// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DOMDocument
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_DOMDocument : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DOMDocument<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_DOMDocument<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DOMDocument26
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_DOMDocument26 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DOMDocument26<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_DOMDocument26<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DOMDocument30
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_DOMDocument30 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DOMDocument30<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_DOMDocument30<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : DOMDocument40
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_DOMDocument40 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_DOMDocument40<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_DOMDocument40<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : FreeThreadedDOMDocument
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_FreeThreadedDOMDocument : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : FreeThreadedDOMDocument26
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_FreeThreadedDOMDocument26 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument26<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument26<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : FreeThreadedDOMDocument30
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_FreeThreadedDOMDocument30 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument30<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument30<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

// *********************************************************************//
// CONNECTIONPOINT/EVENT PROXY
// CoClass         : FreeThreadedDOMDocument40
// Event Interface : XMLDOMDocumentEvents
// *********************************************************************//
template <class T>
class TEvents_FreeThreadedDOMDocument40 : public IConnectionPointImpl<T,
                                                 &DIID_XMLDOMDocumentEvents,
                                                 CComUnkArray<CONNECTIONPOINT_ARRAY_SIZE> >
{
public:
  HRESULT         Fire_ondataavailable(void);
  HRESULT         Fire_onreadystatechange(void);
protected:
  XMLDOMDocumentEventsDisp m_EventIntfObj;
};

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument40<T>::Fire_ondataavailable(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.ondataavailable();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

template <class T> HRESULT
TEvents_FreeThreadedDOMDocument40<T>::Fire_onreadystatechange(void)
{
  T * pT = (T*)this;
  pT->Lock();
  IUnknown ** pp = m_vec.begin();
  while (pp < m_vec.end())
  {
    if (*pp != NULL)
    {
      m_EventIntfObj.Attach(*pp);
      m_EventIntfObj.onreadystatechange();
      m_EventIntfObj.Attach(0);
    }
    pp++;
  }
  pT->Unlock();
}

#endif  //   __TLB_NO_EVENT_WRAPPERS

};     // namespace Msxml2_tlb

#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using  namespace Msxml2_tlb;
#endif

#pragma option pop

#define CHR(err) { hr = (err) ; if (hr != S_OK && hr != S_ABORT_WANTED){ throw EUser(TAGL,AnsiString().sprintf("\nError %08lx\n\n", err));} }
#define S_ABORT_WANTED ((HRESULT)0x800400caL)

#endif // __MSXML2_TLB_h__
